我正在尝试将字段设置为" 1"取决于名称是否有" LC"在开头,但我的语法似乎不正确
SET @r_sql = ' UPDATE mytables'+@r_mystuf+'
SET feild1= ''1''
WHERE category = ''4''
AND name LIKE ''LC%';
exec (@r_sql);
由于
答案 0 :(得分:0)
使用LEFT
代替LIKE
而不是LIKE ''LC%'
使用LEFT(name, 2) = 'LC'
如上所述,引号需要整理出来。
答案 1 :(得分:0)
作为整个字符串,它将是
set @r_sql = 'update tablename' + @r_mystuf + ' set field1 = ' + '1' + ' where category = ' + '4' + ' and name like ''' +'LC%' +'''';
同样的事情是使用我的AdventureWorks DB
declare @var nvarchar(121);
declare @r_mystuf nvarchar(11);
declare @mystuf nvarchar(11);
set @r_mystuf = 'Person';
set @var = N'update Person.' + @r_mystuf + ' set PersonType = ' + 'EE' + ' where BusinessEntityID = ' + '1' + ' and FirstName like ''' +'ke%' +'''';
print @var;