sql-server - 执行存储在 SQL Server 表中的语句
问题描述
例如,我将创建一个临时表:
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;
我想要做的是自动执行每个命令。
谢谢。
解决方案
您必须声明一个变量
DECLARE @Statements NVARCHAR(MAX);
使用#Temptable 中的命令填充此变量
SET @Statements = ( SELECT STRING_AGG (CONVERT(NVARCHAR(MAX),Command), NCHAR(13))
FROM #TembTable)
;
并执行它:
EXECUTE (@Statements)
;
推荐阅读
- amazon-s3 - laravel 存储中的 AWS S3 存储桶仍然导致 401
- javascript - 每分钟运行功能并发送消息
- android - CameraX PreviewView 到位图而不是文件
- node.js - proto3 文件格式数据类型错误中的问题
- firebase - 使用 Coroutines 测试 Firebase 的使用创建用户函数并调用 await() 会导致“此作业尚未完成”
- c# - 在后台线程中从 UserControl 生成 Png
- c# - 在 Neodynamic ThermalLabel SDK [C#] 中作为流导出到 PDF 的问题
- wxmaxima - wxMaxima 从“solve”中提取解决方案
- excel - 复制并粘贴过滤列中的唯一值
- amazon-web-services - Cloudformation 自动分配运营商 IP