我有一个表 T1 的第 1 列,我在其中以“从 T2 选择 Var1”的模式存储一些 SQL 请求。但问题是,当我输入“从 T1 中选择 A1”时,我只能以字符串的形式收到请求。有没有办法执行存储在 A1 列中的请求并将值返回到变量中?
感谢您提前提供帮助:)
我有一个表 T1 的第 1 列,我在其中以“从 T2 选择 Var1”的模式存储一些 SQL 请求。但问题是,当我输入“从 T1 中选择 A1”时,我只能以字符串的形式收到请求。有没有办法执行存储在 A1 列中的请求并将值返回到变量中?
感谢您提前提供帮助:)
您可以动态创建 SQL 语句,然后运行该命令
CREATE TABLE dbo.test89
(
Id int,
Var1 nvarchar(1)
)
INSERT dbo.test89
VALUES(1, 'A'),
(2, 'B')
CREATE TABLE dbo.test90
(
Id int,
Col1 nvarchar(max)
)
INSERT dbo.test90
VALUES(1, 'SELECT Var1 FROM dbo.test89')
DECLARE @dsql nvarchar(max)
DECLARE @varTable TABLE(Var1 nvarchar(1))
SELECT @dsql = Col1
FROM dbo.test90
WHERE Id = 1
INSERT @varTable
EXEC sp_executesql @dsql
SELECT *
FROM @varTable