使用SQL语句时应该注意的一些问题

DECLARE @Where NVARCHAR(max);
SET @Where='';
--初始查询条件
SET @Where+=' ';

  1.当要对变量使用 “+=”时,需要先对变量进行赋值,不赋值直接“+=”会报错。

@Where+='(CASE ISNULL(IsLeader,'''')'

  2.当将SQL语句拼接为字符串使用时,需要将原本为“’”的字符,使用转义字符“‘’”。

group by xxx

  3.使用group by 进行分组查询时,查询结果必须出现聚合函数的使用,否则报错。

EXEC(@sql);

  4.使用“EXEC”执行字符串变量时,需要添加“()”,否则会报错。

SET @Where+=' select top '+CAST(@PageCount AS VARCHAR(100))+' * from (select row_number()over(order by XXXX)rownumber,* from XXXX)a WHERE rownumber>'+CAST(@HadSelectedCounts AS VARCHAR(8000))+'';

  5.可以使用row_number()方法对数据进行分页查询。

--判断存储过程是否存在
if (exists (select * from sys.objects where name = 'Pro_存储过程名称'))
    drop proc Pro_存储过程名称
GO

CREATE PROCEDURE Pro_存储过程名称() as

  6.删除存储过程

原文地址:https://www.cnblogs.com/pressforward/p/7728790.html