2014-06-23 89 views
1

我使用下面的查詢在一個外部文件中寫入數據:BCP全球##臨時表中的錯誤

declare @sql varchar(8000); 
select @sql = 'bcp tempdb.##hmscript out 
F:\HMS\test.txt -c -t, -T -S GIT2B-01\MON' 
select @sql 
exec master..xp_cmdshell @sql; 

當測試在CMD窗口中的BCP,我發現了以下錯誤:

SQLState = 37000,NativeError = 11525 錯誤= [Microsoft] [SQL Server Native Client 11.0] [SQL Server]由於語句'select * from ## hmscript'使用臨時表,所以元數據可能不會被確定爲 。

有人有這個解決方案嗎?

由於提前,

大衛

+0

爲什麼使用全局##臨時表?由於這有效地將併發性降低到1,只需使用常規用戶表並在完成後將其刪除。 –

+0

這是我正在考慮的另一種選擇,但我猜想我的好奇心採取了上風,我想嘗試一些東西:)但是看到使用全局臨時表的操作非常麻煩,我將切換到像您這樣的普通表說 –

+0

運行此腳本時是否存在## hmsscript表?由於##前綴表示tempdb,因此應省略tempdb數據庫限定符。 –

回答

0

如果表不存在,你會得到這個錯誤。

創建表格,然後再試一次,你應該得到你想要的。