一个存储过程的问题的问题?

xgcom 2006-02-14 03:27:36
CREATE PROCEDURE PRO1(
@table1 nvarchar(40) output,
@table2 nvarchar(40) output ) AS

select @table1=table1 from table0 where id=1

--我希望得到 select @table2=table2 from @table1 where id=1 的 @table2

总是有问题,不知道什么写如:

exec('select '+@table2+'=table2 from '+@table1+' where id=1') --也不行

...全文
53 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xgcom 2006-02-15
谢谢
回复
点点星灯 2006-02-14
用Exec可以执行动态SQL语句
比如 Exce('Select Count(Name) Form MyTable')
可以执行语句 Select Count(Name) From MyTable,
但问题是我想在T-SQL中得到该语句返回的count(Name)并付给一个变量,
该如何做?
---------------------------------------------------------------

Create Procedure GetMaxID
@TableName, @ID output
as
begin
declare @sql nvarchar(1000)
set @sql='select @ID = count(Name) from '+@TableName
exec sp_executesql @sql,N'@id int output',@id output
end
---------------------------------------------------------------

Create Procedure GetMaxID
@count output
as
begin
declare @sql nvarchar(1000)
set @sql='select @count=count(Name) from MyTable'
exec sp_executesql @sql,N'@count int output',@count output
end

---------------------------------------------------------------

借楼主的地方问一下,N'@count int output'是什么意思?exec sp_executesql @sql,N'@count int output',@count output这个句子又是什么意思?
---------------------------------------------------------------

exec sp_executesql @sql,N'@count int output',@count output
-------------------^^^要执行的sql串
exec sp_executesql @sql,N'@count int output',@count output
------------------------^^^^^^^^^^^^^^^^^^^^设置sql串中的参数
exec sp_executesql @sql,N'@count int output',@count output
---------------------------------------------^^^^^^^^^^^^获得输出值
看看帮助吧!
回复
点点星灯 2006-02-14
当表名为参数的时候,必须用EXEC执行动态SQL语句。

请在执行该语句前先print 看看语句是否正确
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-02-14 03:27
社区公告
暂无公告