繁体   English   中英

如何删除多临时表?

[英]How to drop multi temporary table?

如何从SQL Server删除多个临时表下面的代码给出此错误:msg 156,级别15,状态1,第5行关键字'drop'附近的语法不正确。

  declare @deptno int = 1
 while @deptno > (Select COUNT(*) from tbl_deptseat)+1
 Begin
   Declare @deptnamevar nvarchar(20) = '##dept'+ cast(@deptno as nvarchar(10))
    exec (drop table (@deptnamevar))
End

这似乎是一种非常奇怪的数据处理方式。 我不建议在表名中放入这样的逻辑。 相反,逻辑属于列。

但是,您想使用动态SQL:

declare @deptno int = 1;
declare @sql nvarchar(max);
while @deptno < (Select COUNT(*) from tbl_deptseat)+1
Begin
   Declare @deptnamevar nvarchar(20) = '##dept'+ cast(@deptno as nvarchar(10));
   set @sql = 'drop table ' + @deptnamevar;
   exec(@sql) ;
   set @deptno = @deptno + 1;
End;
 declare @deptno int = 1

while @deptno < (Select COUNT(*) from tbl_deptseat)+1 Begin Declare @deptnamevar nvarchar(20) = '##dept'+ cast(@deptno as nvarchar(10)) Declare @dropquery nvarchar(20) = 'drop table '+ @deptnamevar exec (@dropquery) set @deptno = @deptno + 1 End

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM