SQL存储过程高手请进(20分)

  • 主题发起人 主题发起人 Orber
  • 开始时间 开始时间
O

Orber

Unregistered / Unconfirmed
GUEST, unregistred user!
@declare @table_name varchar(12)
@declare @result int

set @table_name = 'test' + '1'
exec ('SELECT @result = f1+f2+f3 FROM ' +@table_name)
显示 @result 没有定义...
请问我如何让这个能得到这个@result的值啊
 
f1,f2,f3;定义是什么?如果是字段,就不行了,因为@result 变量只是一个整型值。
不是表或视图。
 
没说清楚
 
declare @table_name varchar(12), @result int
 
多试试呀!
 
exec ('SELECT @result = f1+f2+f3 FROM ' +@table_name)
要改为exec ('SELECT'''+ @result+''' = f1+f2+f3 FROM ' +@table_name)
但是这样是把@result作为一个字符串了。得到的是列的别名.
似乎只有声明一个Cursor变量了。用游标来取.
可惜在sql里面没有象JavaScript里面的Eval的函数.


 
认真听!
 
搞定了。

set @SQLSTR = N'SELECT @X=f1 from tablename'
exec sp_executesql @SQLSTR, N'@X int output', @outvar output

 
接受答案了.
 
后退
顶部