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.删除存储过程