- SQL code
declare @fname nvarchar(20) --字段名declare @tbname nvarchar(20) --表名declare @dfine nvarchar(100) --declare @value nvarchar(20) --字段值declare @sql nvarchar(500) --动态语句declare @returns nvarchar(500) --所有记录合并成一个字符串,返回declare @split nvarchar(2) --分隔符号set @fname='gdh_code'set @tbname='tb_gdh'set @value='bjw201200'set @returns=''set @split=','set @[email protected] nvarchar(20),@tbname nvarchar(20),@value nvarchar(20),@split nvarchar(2),@returns nvarchar(500) output'set @sql='select @[email protected][email protected][email protected]+''''+' from [email protected] +' where [email protected]+' like [email protected]+'%'''print @sqlEXECUTE sp_executesql @sql,@dfine,@fname,@tbname,@value,@split,@returns outputprint @returns
错误提示:
消息 156,级别 15,状态 1,第 1 行
关键字 'select' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明标量变量 "@returns"。
------解决方案--------------------
- SQL code
declare @fname nvarchar(20) --字段名declare @tbname nvarchar(20) --表名declare @dfine nvarchar(100) --declare @value nvarchar(20) --字段值declare @sql nvarchar(500) --动态语句declare @returns nvarchar(500) --所有记录合并成一个字符串,返回declare @split nvarchar(2) --分隔符号set @fname='gdh_code'set @tbname='tb_gdh'set @value='bjw201200'set @returns=''set @split=','set @[email protected] nvarchar(20),@tbname nvarchar(20),@value nvarchar(20),@split nvarchar(2),@returns nvarchar(500) output'set @sql='select @[email protected][email protected][email protected]+''+' from [email protected] +' where [email protected]+' like [email protected]+'%'''print @sql/*select @returns=gdh_code, from tb_gdh where gdh_code like '%bjw201200%'*/
------解决方案--------------------
我觉得你这拼接好像都嵌套了两层,你看看别人的拼接哪有那么复杂。
http://topic.csdn.net/u/20080614/17/22e73f33-f071-46dc-b9bf-321204b1656f.html