我stored procedure
在SQL Server 2008
其中使用了很多临时表(我正在重构另一个代码并试图将它们移动到标量,但这是一个更长的过程)。在存储过程的开头,我想声明所有临时表,然后循环它们并删除任何存在的临时表。
利用其他编程语言(例如python
),您可以创建一个for loop
并循环遍历变量。你能做到SQL Server
吗? WHILE
似乎使用正确的函数,但我见过的每个示例都使用增量值,例如SET @intFlag = @intFlag + 1
. 我不想增加,只是取值并检查临时表是否存在 - 如果存在,则删除它。如果不是,则为下一个值。
这是我的想象,但不确定下一步该做什么,甚至是否可以以编程方式删除表:
DECLARE @Tables table (tablename varchar(50));
INSERT INTO @Tables VALUES
('#a'),
('#b'),
('#c'),
('#d');
-- this part is how I would write the code in python --
for i in @Tables:
IF OBJECT_ID('tempdb..+ i ') IS NOT NULL
DROP TABLE i
有没有办法在我的内部完成这个stored procedure
?