UPDATE SC SET cno='c4' WHERE grade=87 --执行正确DECLARE @str1 nvarchar(24) DECLARE @str2 nvarchar(24) DECLARE @str nvarchar(80) SET @str1='UPDATE SC SET cno="c4"' SET @str2='WHERE grade=87' SET @str=@str1+@str2 EXEC sp_executesql @str
--报错,说"c4"是非法列名,怎么办啊?去掉双引号报grade附件语法错。SQL server2005, cno 是 char(5)
表一个,输出是'你PRINT 出来就知道了
DECLARE @str2 nvarchar(24)
DECLARE @str nvarchar(80)
SET @str1='UPDATE SC SET cno=''c4'''
SET @str2=' WHERE grade=87'
SET @str=@str1+@str2
PRINT @str
UPDATE SC SET cno='c4' WHERE grade=87WHERE 条件那里还有个空格
DECLARE @str2 nvarchar(24)
DECLARE @str nvarchar(80)
SET @str1='UPDATE SC SET cno=''c4'''
SET @str2=' WHERE grade=87'
SET @str=@str1+@str2
--print @str
EXEC sp_executesql @strselect * from SC