declare @tem_name varchar(50) --临时表名
declare @content varchar(4000) --列名(内容)
declare @col varchar(20) --列名
declare @key varchar(20) --关键词
exec( 'update '+@tem_name+' set content=replace('+
@body+','+@flag+','+@col1+')')
临时表有,有字段列 content :内容列实现: 该临时表中,content列如果含有关键词,将该关键词替换成其他内容。
@col 是用于替换的新内容,它是该临时表的一个字段列
@key 代表关键词,被替换的内容执行报错:&附近有语法错误我不用参数测试:不用参数直接 exec('update tem_1 set content =replace(''***.....'',''haha'',col1)')
其中 tem_1是临时表的名称,content,col1 是tem_1的列
结果执行成功,没有错误为什么使用参数,就错误???
--试试????
exec( 'update '+@tem_name+' set content=replace('''+
@body+''','''+@flag+''','''+@col1+''')')
declare @content varchar(4000) --列名(内容)
declare @col varchar(20) --列名
declare @key varchar(20) --关键词
declare @sql varchar(8000)
set @tem_name='tb'
set @content='id'
set @col='11122'
set @key='bb'
set @sql='update '+@tem_name+' set [content]=replace('+@content+','''+@key+''','''+@col+''')'
select @sql
/*update tb set [content]=replace(id,'bb','11122')*/
exec('update '+@tem_name+' set [content]=replace('''+@content+''','''+@key+''','''+@col+''')')
加上引号后,错误没有了
都把我搞糊涂了,使用参数一般不需要加引号,到底是什么时候还是要加引号呢???
exec( 'update '+@tem_name+' set content=replace('+
@content+','+@key+','+@col1+')')
不好意思,这句--拷贝错误--
1楼,3楼的朋友--说对了,错误的确是没有加引号