SQL Server
和
MySql
语法和关键字的区别
——用于
SQLServer
到
MySql
的转换
(1)
mysql
的
ifnull
()
函数对应
sql
的
isnull
()
函数
;
(2)
mysql
的存储过程中变量的定义去掉
@;
(3)
mysql
的每句结束要用
"
;
"
(4)
SQLServer
存储过程的
AS
在
MySql
中需要用
begin .....end
替换
(5)
字符串连接用
concat()
函数
;
如
SQLServer: Temp=
’
select * from
’
+
’
tablename
’
+
…
+
…
MySql:Temp=
concat
(
’
select * from
’
,
’
tablecname
’
,
…
,
…
)
(6)
mysql
的
uuid()
对应
sql
的
GUID();
(7)
MySql
的
out
对应
SQLServer
的
output,
且
mysql
的
out
要放在变量的前面,
SQLServer
的
output
放在变量后面
MySql out,in,inout
的区别——
MySQL
存储过程
“
in
”
参数:跟
C
语言的函数参数的值传递类似,
MySQL
存储
过程内部可能会修改此参数,但对
in
类型参数的修改,对调用者(
caller
)来说是不可
见的(
not visible
)
。
MySQL
存储过程
“
out
”
参数:从存储过程内部传值给调用者。在存储过程内部,该
参数初始值为
null
,无论调用者是否给存储过程参数设置值。
MySQL
存储过程
inout
参数跟
out
类似,都可以从存储过程内部传值给调用者。不同
的是:调用者还可以通过
inout
参数传递值给存储过程。
(
8
)
MySQL
的
if
语句为
if
(
条件
)
then
end if;
或者
If
(
条件
) then
Else
End if
或者
If
(条件)
then
Elseif
(
注意不能写成
Else if
)
Elseif
…
End if
(
9
)
Mysql
的
Execute
对应
SqlServer
的
exec;
(
注意:必须像下面这样调用
)
Set @cnt=
’
select * from
表名
’
;
Prepare str from @cnt;
Execute str;
(10)MySql
存储过程调用其他存储过程用
call
Call
函数名(即
SQLServer
的存储过程名)
(
’
参数
1
’
,
’
参数
2
’
,
……
)