将场地设置为" 1"对于某个字符串

时间:2015-06-17 12:46:24

标签: sql-server

我正在尝试将字段设置为" 1"取决于名称是否有" LC"在开头,但我的语法似乎不正确

SET @r_sql = '  UPDATE  mytables'+@r_mystuf+'
                SET     feild1= ''1''
                WHERE   category = ''4''
                AND name LIKE ''LC%';                       

exec (@r_sql);

由于

2 个答案:

答案 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;