1.关键字
在sql server中是关键字,若要创建user表则要用create table [user]();
在mysql中则不用,直接create table user;
2.  自增
id int  primary key auto_increment,    mysql中可用
id int primary key identity(1,1),    sql server 2005中可用
3.日期时间格式
INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,cast('1980-12-17'as datetime ),800,NULL,20); //sql servers和mysql都可用,而且mysql还可以直接用'1980-12-17';
INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,convert(datetime,'1981-2-20',110),1600,300,30); //sql server可用,但mysql不可用
INSERT INTO emp VALUES (7935,'MILLER','CLERK',7782,convert(nvarchar,getdate(),120),1300,NULL,10);  //sql server可用,但mysql不可用
4.取指定范围内的记录
sql server不支持limit语句,只能用top 取代limt 0,N,row_number() over()函数取代limit N,M
select * from book limit ?,?    //适用mysql,但注意,第一个?,代表开始的行数,第二个?是取多少条记录

//以下适用于sql server
    //ROW_NUMBER()
SELECT * FROM
 
(
    SELECT ROW_NUMBER() OVER (ORDER BY id ASC) AS 'RowNumber', * FROM book
) AS UserInfo
 
WHERE RowNumber BETWEEN ( ( ( @pageIndex - 1 ) * @pageSize ) + 1 ) AND ( @pageIndex * @pageSize )
//top
一种:select top 2 * from emp;    //取前两个
两种:select top 20 percent * from emp; //总记录数的百分比数
//over
开窗函数over的常用方法
a.为每条数据显示聚合信息.(聚合函数() over())    //聚合函数() 如AVG,例: select * AVG(每季度销售总额) over() as 平均销售额 from  销售总表;
b.位每条数据提供分组的聚合函数结果(聚合函数() over(partition by 字段) as 别名)
c.与排名函数一起使用(row number() over(order by 字段) as 别名)
 

5.mysql的存储过程中变量的定义去掉@;
6.修改表名也有差异,将表emp改为emp2
ALTER TABLE emp RENAME emp2  //适用mysql
exec sp_rename 'test1', 'test2' 或exec sys.[sp_rename] @objname=N'test2',@newname='test1'    //两句有何区别??sql server
7. 修改字段的数据类型
alter table test2 modify id bigint;    //适用mysql
alter table emp alter column[id] bigint    //适用sql server
8.级连删除
constraint department_id_FK foreign key(department_id) references department(id)  on delete set null;当主表被删除时,级联表的外键删除
constraint department_id_FK foreign key(department_id) references department(id)  on delete cascade; 当主表被删除时,级联表全部删除以上操作适用于mysql,但不知sql server中是否有相应操作。