我有一些問題試圖從SQL函數中返回一個表,其中創建表的SQL是動態編寫的。編寫動態SQL函數
到目前爲止,我有:
CREATE FUNCTION dbo.SEL_PCD
(
@COBDate AS DATETIME,
@FileName AS VARCHAR(50),
@PC AS VARCHAR(50),
@MyList AS VARCHAR(max),
DECLARE @SQL VARCHAR(max)
SET @SQL = 'SELECT * FROM
(SELECT tab1.TID FROM
(SELECT TID FROM dbo.SEL_RT('[email protected]+','[email protected]+') WHERE BID IN ('+ @MyList +')) tab1
JOIN
(SELECT TID FROM CT WHERE (Col_Name LIKE %' + @PC + '% OR Bk LIKE %' + @PC + '%) AND FileName = ' + @FileName + ' AND COBDate = @COBDate) tab2
ON tab1.TID = tab2.TID) tab3
JOIN
(SELECT TID, Value FROM CR WHERE BID IN (' + @MyList + ') AND COBDate = ' + @COBDate + ' AND FileName = ' + @FileName + 'AND ScenID = 266) tab7
ON tab3.TID = tab7.TID'
)
RETURNS TABLE AS
RETURN
(
EXEC sp_executesql @SQL
)
GO
我收到錯誤聲明SQL變量。我可以通過執行命令返回表嗎?
函數和存儲過程之間的區別來源:http://www.sqlservercentral.com/Forums/Topic416974-8-1.aspx我承認,我很懶惰 – fancyPants