我有一個這樣的存儲過程。必須聲明表變量(動態查詢)
ALTER PROCEDURE [dbo].[storedProc_dataPull]
@serverName nvarchar(30),
@dbName nvarchar(30),
@tblName nvarchar(30),
@schemaName nvarchar (30),
@userID nvarchar (30),
@password nvarchar (30),
@sampleTbl nvarchar (30)
AS
BEGIN
DECLARE @schemaAndTbl nvarchar (39)
SET @schemaAndTbl = @dbName + '.' + @schemaName + '.' [email protected]
EXEC('INSERT INTO @sampleTbl
([ID]
,[ActivityDefinitionID]
,[ParentID]
,[Caption]
,[Description]
,[ShortDescription]
,[Name]
,[Order]
,[ReferenceNumber]
,[ShowOnNavigation]
,[Status]
,[InUseBy]
,[ExpectedStartDate]
,[ActualStartDate]
,[ExpectedEndDate]
SELECT *
FROM OPENDATASOURCE(''SQLOLEDB'',''Data Source=' + @serverName+ ';User ID='[email protected]+';Password=' [email protected]+''').'[email protected]+' sdb1')
UPDATE @sampleTbl
SET ServerName = ''[email protected]+'', DBName = ''[email protected]+''
WHERE ServerName IS NULL AND DBName IS NULL
END
當我試圖執行,我總是得到一個錯誤:
Must declare the table variable
我的下一個問題是要通過列名作爲參數也是如此。
SQL Server有可能嗎?我只想爲我的應用程序創建一個動態存儲過程。