我正在尝试在varchar
'EXEC tasks.dbo.sp_run_job '(New) Cube Process FirstLast Dimensions New', @TaskID, @LoadID'
现在插入括号是问题 - 有没有办法做到这一点?
这是我尝试执行的完整更新脚本:
begin tran
update tasks..tasks
set Task_SQL = 'EXEC tasks.dbo.sp_run_job '(New) Cube Process FirstLast Dimensions New',@TaskID,@LoadID'
where TaskID in (621)
答案 0 :(得分:2)
如果在编码中,则使用参数绑定。或者使用两个单引号。喜欢 ' EXEC tasks.dbo.sp_run_job'(新)多维数据集处理FirstLast维度新'',@ TaskID,@ LoadID'
答案 1 :(得分:2)
问题不在于括号:问题是括号前面的单引号。这样做是为了自我逃避这些引用:
begin tran
update tasks..tasks set Task_SQL = 'EXEC tasks.dbo.sp_run_job ''(New) Cube Process FirstLast Dimensions New'',@TaskID,@LoadID' where TaskID in (621)
请注意,我在括号旁边的开头报价和逗号附近的结束报价中都进行了转义。 Sql Server会将两个相邻的引号视为字符串中的一个单引号。