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放到查询字段中