2013-05-31 27 views
1

我有一個表T1,其中有一列存儲了一些SQL請求,模式爲「從T2選擇Var1」。但問題是,當我把「從T1選擇A1」時,我只能以字符串的形式得到請求。有什麼辦法來執行存儲在列A1中的請求並將值返回給變量?在表中執行存儲的請求並將值存入變量

感謝您的幫助提前:)

回答

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 
+0

感謝亞歷山大:) – mounaim

+0

沒問題;)... –