我有一個存儲過程,我創建一個表變量,然後嘗試對該表變量執行select
,但輸出引發不正確的語法錯誤。使用表變量從SQL Server的select語句不正確的語法錯誤
下面我有我的存儲過程(簡體):
CREATE PROCEDURE [dbo].[spGetLog]
AS
SET NOCOUNT ON;
Declare @Table table (ID int identity(1,1),
Node varchar(100)
)
insert into @Table(Node) values ('employee')
Declare @sqlquery AS NVARCHAR(1000)
SET @sqlquery = 'select * from @Table;'
EXEC (@sqlquery)
給出了一個錯誤 -
附近有語法錯誤@Table「
在現實中, @sqlquery
變量我有複雜的,我需要使用一個變量和 執行曲紅黴素。
有沒有辦法仍然可以使用變量執行我的存儲過程?歡迎任何其他 建議。
不會要求這是絕對正確的,所以Declare @TableName語法用於table * variables *,而不是臨時表,並且我認爲在EXEC發生時'@ Table'變量超出了範圍。 –
@David W謝謝!我改變了標題。是的,正如你所說,它似乎超出了範圍。你有任何建議或解決此問題的方法 – CodeNinja
你可以使用臨時表語法來聲明表,那麼你應該能夠執行你是XEC。當程序退出時,只需刪除臨時表。 –