台灣最大程式設計社群網站
線上人數
1465
 
會員總數:246228
討論主題:189787
歡迎您免費加入會員
討論區列表 >> MS SQL >> 無法判斷中繼資料?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
無法判斷中繼資料?
價值 : 100 QP  點閱數:1607 回應數:3
樓主

荔枝
中級專家
2677 787
10036 2628
發送站內信

捐贈 VP 給 荔枝
不知道大家有沒有碰過這種情況:
當你在STORED PROCEDURE中使用:

一: CREATE TABLE #tmp(idx int UNIQUE CLUSTERED,memo VARCHAR(80))
二: INSERT INTO #tmp WITH (tablock)(idx,memo) SELECT .....................

結果「有時候」會出現以下錯誤訊息:

無法判斷中繼資料,因為XXXX會使用暫存資料表

這訊息到底是什麼意思呢?......Google也找不出答案??

有人知道要怎麼解嗎?,請教大家,謝謝




搜尋相關Tags的文章: [ 中繼資料 ] ,
本篇文章發表於2015-12-01 22:54
1樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
使用完有drop?
還是要改用with CTE試試?
本篇文章回覆於2015-12-02 11:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

Hsu,Harry
檢舉此回應
這是BUG,請參考
https://connect.microsoft.com/SQLServer/feedback/details/629077/denali-engine-metadata-discovery-shuns-temp-tables
SELECT * INTO 這方法使用多年,反而都沒碰過此ERROR。
可在SELECT時,指定欄位型態,然後建立UNIQUE INDEX試試。
本篇文章回覆於2015-12-03 14:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
建議你 直接 select xxx into #tmp from 原始的table where 1=0來建立暫存資料表
在insert 進去 這樣資料型態也不會錯
本篇文章回覆於2015-12-07 14:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.