【发布时间】:2020-12-12 10:46:24
【问题描述】:
例如,我将创建一个临时表:
CREATE TABLE #TembTable
(
Command VARCHAR(max)
)
将值插入表中
INSERT INTO #TembTable (Command)
VALUES ('SELECT @@VERSION AS Version_Name ;'),
('SELECT @@LANGUAGE AS Current_Language;'),
('SELECT @@LANGID AS Language_ID ;'),
('SELECT @@SERVERNAME AS Server_Name;'),
('SELECT @@SERVICENAME AS Service_Name;')
如果我选择所有值
SELECT * FROM #TembTable
结果会显示:
SELECT @@VERSION AS Version_Name ;
SELECT @@LANGUAGE AS Current_Language;
SELECT @@LANGID AS Language_ID ;
SELECT @@SERVERNAME AS Server_Name;
SELECT @@SERVICENAME AS Service_Name;
我想做的是自动执行每个命令。
谢谢。
【问题讨论】:
-
要运行存储在表中的SQL,需要一个循环一次处理多行,然后
sp_executesql执行动态SQL。 -
您可能还希望有一个具有 ORDER 的临时表 - 而不是您所希望的随机表。即添加一个 ID 字段,以便您可以按 ID 排序执行它们。否则,您在检索时可能会或可能不会以相同的顺序获取它们。
-
为什么不简单地创建一个视图呢?
create view ... as select @@version as version_name, @@language as current_language, ...
标签: sql-server tsql sql-server-2012 dynamic-sql