2010-02-02 67 views
1

我在SQL Server 2000下面的查詢工作不工作執行一個存儲過程將記錄插入到表 - SQL Server 2000中

declare @TempAccountKey Table (AccKey int,SitName varchar(1000),SitKey int) 
insert into @TempAccountKey(AccKey,AccName) 
exec [usp_Get_AccountForUser] @UserName 

它引發錯誤

EXECUTE在插入表變量時不能用作源。

任何想法?

#1


鏈接服務器的設置是否正確。如果我執行以下查詢

exec [ABC-SQL-PROD.DBabc.dbo.usp_Get_ABCForUser] 

它顯示錯誤'找不到存儲過程'。

任何想法?

NLV

回答

3

使用臨時表,而不是

CREATE TABLE #TempSiteKey (AccKey int,SitName varchar(1000),SitKey int) 

insert into #TempSiteKey (AccKey,AccName) 
exec [usp_Get_AccountForUser] @UserName 

DROP TABLE #TempSiteKey 

而且你不能調用程序的原因是因爲你已經界定它不正確

exec [ABC-SQL-PROD.DBabc.dbo.usp_Get_ABCForUser] 

實際上意味着執行過程稱爲'ABC-SQL-PROD.DBabc.dbo.usp_Get_ABCForUser'。

你想要的是:

exec [ABC-SQL-PROD].[DBabc].[dbo].[usp_Get_ABCForUser] 
+0

廣東話我做,與不使用臨時表的表變量?我能夠在sql server 9.0中完美運行這些代碼。那麼這是否意味着8.0不會支持這個? – NLV 2010-02-02 11:09:41

+0

正確。我沒有意識到他們最終加入了這個;它絕對不能在SQL 2K中使用表變量。 – Joe 2010-02-02 11:30:20

+0

如果您只是檢索1行,您可能需要考慮使用OUTPUT參數而不是返回結果集。 – 2010-02-02 11:46:18

相關問題