已经声明了,为什么还提示“必须声明变量@Num”

yxandyx 2004-10-21 11:57:52
存储过程如下:

alter procedure getLoseNum
@TableName nvarchar(100)
as

create table #temptable(a int)
declare @char varchar(1000),@i int
declare @num int

exec('set @num=(select max(id) from '+@TableName+')')
set @i=1
while @i<=@num
begin
insert #temptable values (@i)
set @i=@i+1
end
exec ('select a from #temptable where a not in (select id from '+@TableName+')')
...全文
123 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐鹦鹉 2004-10-21
  • 打赏
  • 举报
回复
exec('set @num=(select max(id) from '+@TableName+')')
这句话有问题。@num在这里被当成字符串了,而不是变量
Andy__Huang 2004-10-21
  • 打赏
  • 举报
回复
alter procedure getLoseNum
@TableName nvarchar(100)
as

create table #temptable(a int)
declare @char varchar(1000),@i int
declare @num int

exec('set '+@num+'=(select max(id) from '+@TableName+')')---->改這一行
set @i=1
while @i<=@num
begin
insert #temptable values (@i)
set @i=@i+1
end
exec ('select a from #temptable where a not in (select id from '+@TableName+')')

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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