我正在使用sp_sqlexec
并想知道如何处理语句字符串'问题'中的单引号
declare @id int =1
declare @sql nvarchar(200)
set @sql = '
insert into mytable (col1,col2) values (1, 'problem')
'
exec sp_sqlexec @sql
答案 0 :(得分:3)
答案 1 :(得分:2)
双单引号转到单引号:
set @sql = 'insert into mytable (col1,col2) values (1, ''problem'')'
答案 2 :(得分:1)
比处理这些额外的引号更好,您可以更改动态sql以使用参数。 (注意这是使用sp_executesql而不是sp_sqlexec,因为它允许参数)
declare @id int = 1
declare @sql nvarchar(2000)
declare @col2 varchar(10) = 'problem'
set @sql = 'insert into mytable (col1, col2) values (1, @col2)'
exec sp_executesql @sql, N'@Col2 varchar(10)', @col2 = @col2