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

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') --也不行

...全文
83 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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 看看语句是否正确

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧