1

我有一个表 T1 的第 1 列,我在其中以“从 T2 选择 V​​ar1”的模式存储一些 SQL 请求。但问题是,当我输入“从 T1 中选择 A1”时,我只能以字符串的形式收到请求。有没有办法执行存储在 A1 列中的请求并将值返回到变量中?

感谢您提前提供帮助:)

4

1 回答 1

2

您可以动态创建 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
于 2013-05-31T21:03:35.430 回答