【数据库】mysql和sql server写存储过程学到的一些知识

MYSQL

 

SQL SERVER

 

存储过程

create

CREATE PROCEDURE DmaReportYearly

(IN today datetime,IN partition_id INT (11))

 COMMENT ''

BEGIN

end

1参数被小括号包裹

2参数前声明是in或者out

3 int类型可声明长度

4可加comment注释

CREATE PROCEDURE DmaReportDaily @today datetime2,

 @partition_id INT AS

BEGIN

1参数不用括号

2参数必须加@

3 int类型不能写长度

4 begin之前必须加as

5一个存储过程内的分号可以不写

 

drop

drop procedure if exists

 

 if exists不可用

 

ID自增

create

AUTO_INCREMENT

 

identity(1,1)

标识的概念代替了自增

 

 

 

 

不可通过alter修改为自增

先删除主键约束,删除字段,再重新创建字段

游标

读取

fetch mycursor into myvar

 

fetch next from mycursor into myvar

 

 

判断状态

declare cotinue handler for not found ....

声明handler处理

@@fetch_status

全局变量判断

日期

增加

date_add(mydate,

interval 1 DAY)

interval关键字

dateadd(DAY,1,mydate)

 

 

date_sub或者用负数

 

用负数

 

 

格式化

DATE_FORMAT(mydate,

'%Y%m%d')

 

DATENAME(year,

mydate)返回nvarchar,MONTH等函数返回数字

数字类型不能用于拼接,需要cast(num as nvarchar)

if

 

if then

elseif then

else

end if

 

if begin end

else begin end

 

while

 

while do

 end while

 

while begin end

 

存储过程调用

 

call XX(var1,var2)

 

exec/execute XX var1,var2

 

函数

 

可以内嵌其他函数

 

貌似不允许

 

 

join必须接on表示连接关系,无关系直接通过select放到查询字段中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值