执行SELECT结果语句

时间:2017-02-15 10:03:44

标签: sql sql-server database

我一直在搜索如何执行我存储在具有SELECT语句结果的表中的语句。

我发现了类似的问题,但没有一个有效。

所以现在我有一个表格,其中第一列的单元格包含

DROP TABLE table1
DROP TABLE table2
..... and so on. 

我已尝试使用EXEC命令,但我无法使其正常工作。

请帮忙。谢谢。

2 个答案:

答案 0 :(得分:1)

如果你想执行所有语句,我认为你需要实现一个游标

DECLARE @Query VARCHAR(250)

DECLARE crs_ExecStatement CURSOR FAST_FORWARD
FOR 
    SELECT Column1 FROM YourTable 

OPEN crs_ExecStatement
    FETCH NEXT FROM crs_ExecStatement INTO @Query
    WHILE @@FETCH_STATUS = 0
    BEGIN 
        EXEC(@Query)

        FETCH NEXT FROM crs_ExecStatement INTO @Query
    END

CLOSE crs_ExecStatement
DEALLOCATE crs_ExecStatement

答案 1 :(得分:0)

使用EXEC并将值与GO分隔为下一个演示: -

Create database Demo
go
use Demo
go

Create table MyTable (Value varchar (200))
go
insert into MyTable values ('Drop Table table1')
go
insert into MyTable values ('Drop Table table2')
go
insert into MyTable values ('Drop Table table3')
go

declare @Query nvarchar(max)
SELECT @Query = isnull(@Query,'') + Value + char (10) + 'Go'
FROM MyTable 
--print @Query
SET @Query = 'EXEC (''' + REPLACE(REPLACE(@Query, '''', ''''''), 'GO', '''); EXEC(''') + ''');'
EXEC (@Query)

使用go执行动态查询的想法取自here