怎样纠正这个错误? 完全看不懂,在说什么!EXEC sp_ExecuteSql 你这个用在这里是什么意思? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TRY:DECLARE @t1 nvarchar(400) DECLARE @t2 nvarchar(400) DECLARE @t3 nvarchar(400) SET @t3='apple' SELECT @t1=t1 FROM tbEXEC SP_ExecuteSql @t1,N'@t3 nvarchar(400)',@t3 nvarchar(400) 感谢libin_ftsafe 纠正了原代码第四行的笔误,第四行代码代码应是:SET @t3='apple' 。但是,如果执行libin_ftsafe 的最后一行代码:EXEC SP_ExecuteSql @t1,N'@t3 nvarchar(400)',@t3 nvarchar(400)仍会出现错误提示:'nvarchar' 附近有语法错误。 DECLARE @t1 nvarchar(400) DECLARE @t2 nvarchar(400) DECLARE @t3 nvarchar(400) SET @t3=’apple’ SELECT @t1= t1 FROM tb /* 数据表tb仅一条记录、字段t1的值是:set @t2=cast(@t3 as char(100)) */ 此时如果执行以下代码能得到正确结果:set @t2=cast(@t3 as char(100)) select @t1 但是,如果执行以下代码却会有错误提示:必须声明变量 '@t3'。 EXEC sp_ExecuteSql @t1 目的是要得这样的方式到@t2的值’apple’,而且@t2的赋值语句保存在数据表中。应该怎样修改代码? 目的是要通过这样的方式得到@t2的值’apple’,而且@t2的赋值语句保存在数据表中。应该怎样修改代码? 目的是要执行以下代码,为@t2赋值:set @t2=cast(@t3 as char(100)) 但是,此代码保存在数据表tb的t1字段中,从数据表取出t1字段(值是“set @t2=cast(@t3 as char(100)) ”)后,保存在@t3 中,所以最后执行代码:EXEC sp_ExecuteSql @t1 DECLARE @t1 nvarchar(400) DECLARE @t2 nvarchar(400) DECLARE @t3 nvarchar(400) SET @t3='apple' --SELECT @t1=t1 FROM tbselect @t1 = 'set @t2=cast(@t3 as char(100))'EXEC SP_ExecuteSql @t1,N'@t3 nvarchar(400),@t2 nvarchar(400) output',@t3,@t2 outputselect @t2--apple 感谢Herb2,问题解决了!不过,我本意是要用代码SELECT @t1= t1 FROM tb 得到@t1,但是将此代码代替Herb2的select @t1 = 'set @t2=cast(@t3 as char(100))'代码,同样得到正确结果。 一个有深度的问题 求一个查询统计的SQL语句 有点困难 高手帮忙 请教高手 求SQL 2000语句 为什么我的sql server不能登陆 帮忙解决一个存储过程:查取的记录数 设成变量 问题[急] sqlserver2000能不能更改它的默认端口??? 请教:数据处理 请问产生全数据库的script文件.............. 根据表有几行在报表显示成一行 请教一下SQL 的select中的Case 问题? 紧急求助各位专家,取最近的几条数据做统计的难题
DECLARE @t2 nvarchar(400)
DECLARE @t3 nvarchar(400)
SET @t3='apple'
SELECT @t1=t1 FROM tb
EXEC SP_ExecuteSql @t1,N'@t3 nvarchar(400)',@t3 nvarchar(400)
但是,如果执行libin_ftsafe 的最后一行代码:
EXEC SP_ExecuteSql @t1,N'@t3 nvarchar(400)',@t3 nvarchar(400)
仍会出现错误提示:
'nvarchar' 附近有语法错误。
DECLARE @t2 nvarchar(400)
DECLARE @t3 nvarchar(400)
SET @t3=’apple’
SELECT @t1= t1 FROM tb /* 数据表tb仅一条记录、字段t1的值是:set @t2=cast(@t3 as char(100)) */
此时如果执行以下代码能得到正确结果:set @t2=cast(@t3 as char(100))
select @t1
但是,如果执行以下代码却会有错误提示:必须声明变量 '@t3'。
EXEC sp_ExecuteSql @t1
目的是要得这样的方式到@t2的值’apple’,而且@t2的赋值语句保存在数据表中。应该怎样修改代码?
set @t2=cast(@t3 as char(100))
但是,此代码保存在数据表tb的t1字段中,从数据表取出t1字段(值是“set @t2=cast(@t3 as char(100)) ”)后,保存在@t3 中,所以最后执行代码:EXEC sp_ExecuteSql @t1
DECLARE @t2 nvarchar(400)
DECLARE @t3 nvarchar(400)
SET @t3='apple'
--SELECT @t1=t1 FROM tb
select @t1 = 'set @t2=cast(@t3 as char(100))'
EXEC SP_ExecuteSql @t1,N'@t3 nvarchar(400),@t2 nvarchar(400) output',@t3,@t2 output
select @t2
--apple
不过,我本意是要用代码SELECT @t1= t1 FROM tb 得到@t1,但是将此代码代替Herb2的select @t1 = 'set @t2=cast(@t3 as char(100))'代码,同样得到正确结果。