场景
在存储过程中拼接SQL,有过经历的人都知道,字符拼接的单引号是多么的…本人觉得这玩意类似于正则了,就是不断尝试,碰巧又撞到了新的写法,拼接 in语句 ,这里就记录下…
直接上SQL
DECLARE @Id NVARCHAR(max);
DECLARE @Name NVARCHAR(50);
DECLARE @SQL NVARCHAR(MAX);
Set @Id='N''31CB7589-98F4-411B-82BB-66497B252FB3'',N''31CB7589-98F4-411B-82BB-66497B252FB3'',N''31CB7589-98F4-411B-82BB-66497B252FB3''';
Set @Name=N'张三';
Set @SQL='Select * From Person where Name=N'''+@Name+'''';
Set @SQL+=' and F_Id in('+@Id+')';
-- 打印
print(@SQL)
-- 执行
exec(@SQL)
这样拼出来的SQL是正确,可以执行的,结果如下: