海口秀英隆智慧網絡科技工作室
咨詢熱線:400-822-8458 客戶服務:0898-32183600

SQL Server 導入/導出 錯誤排查

發表于:2011-11-02 00:00:00來源:SOUAB.COM人氣:3418

如(rú)果提示導入失敗,出現圖14情況,這時不要急着點"完成"關閉窗口。雙擊中間的(de)"出現錯誤"會出現詳細的(de)失敗原因。

圖14:
點擊查看原圖

錯誤原因一(yī)、沒安裝SP3補丁

如(rú)果是出現如(rú)圖15的(de)報錯原因,那麽就很有可(kě)能是因為(wèi)您本機的(de)SQL Server還沒有打SP3補丁。

圖15:
點擊查看原圖

如(rú)何查看是否已打了SP3補丁呢(ne)?右鍵點擊本地(dì)SQL Server屬性,彈出圖16窗口,查看"産品版本"一(yī)行。
像以下圖顯示8.00.760(SP3)說明已經打過補丁。如(rú)果您的(de)企業管理(lǐ)器顯示的(de)版本要比這個小,那就是沒打SP3補丁。
請安裝SQL Server SP3補丁後再重試。

圖16:
點擊查看原圖

錯誤原因二、對象屬性沖突

如(rú)果出現圖17情況,那麽應該就是您本地(dì)數據庫的(de)表/視(shì)圖/存儲過程的(de)屬主和(hé)服務器上數據庫默認用戶不一(yī)緻。
服務器的(de)用戶一(yī)般是:數據庫名+'_f',如(rú)我的(de)數據庫名稱是testdb,則我在服務器上使用的(de)數據庫用戶名就是testdb_f。
如(rú)圖18,我本地(dì)的(de)表屬主是testuser,與服務器數據庫用戶名不一(yī)緻,因此導入過程出錯。

圖17:
點擊查看原圖

圖18:
點擊查看原圖

解決方法是:
應該先把本地(dì)的(de)所有表/視(shì)圖/存儲過程屬主都改為(wèi)dbo或testdb_f(後者需要在本地(dì)創建起相應用戶。
建議創建,否則以後想從服務器上導出數據時同樣會因為(wèi)這個問題導出錯誤),再重新進行導入/導出。

打開SQL查詢分析器,運行以下命令進行批量修改表屬主為(wèi)dbo:

SQL代碼
  1. exec sp_MSForEachTable 'sp_changeobjectowner "?", "dbo"'   

運行成功後表屬主會改變成如(rú)圖19:

圖19:
點擊查看原圖

如(rú)果需要修改視(shì)圖/存儲過程,則麻煩了點。
下面有個方法可(kě)以實現:

一(yī)、先在master創建一(yī)個sp_MSforeachObject存儲過程,命令如(rú)下:

SQL代碼
  1. USE MASTER   
  2.   
  3. GO   
  4.   
  5. CREATE proc sp_MSforeachObject   
  6.   
  7. @objectType int=1,   
  8.   
  9. @command1 nvarchar(2000),    
  10.   
  11. @replacechar nchar(1) = N'?',    
  12.   
  13. @command2 nvarchar(2000) = null,   
  14.   
  15.     @command3 nvarchar(2000) = null,    
  16.   
  17. @whereand nvarchar(2000) = null,   
  18.   
  19. @precommand nvarchar(2000) = null,    
  20.   
  21. @postcommand nvarchar(2000) = null  
  22.   
  23. as  
  24.   
  25. /* This proc returns one or more rows for each table (optionally, matching @where), with each table defaulting to its    
  26.   
  27. own result set */   
  28.   
  29. /* @precommand and @postcommand may be used to force a single result set via a temp table. */   
  30.   
  31. /* Preprocessor won't replace within quotes so have to use str(). */  
  32.  
  33. declare @mscat nvarchar(12)  
  34.  
  35. select @mscat = ltrim(str(convert(int, 0x0002)))  
  36.  
  37. if (@precommand is not null)  
  38.  
  39.   exec(@precommand)  
  40.  
  41. /* Defined  @isobject for save object type */  
  42.  <

文章(zhāng)整理(lǐ): 世紀雲圖  /

以上信息與文章(zhāng)正文是不可(kě)分割的(de)一(yī)部分,如(rú)果您要轉載本文章(zhāng),請保留以上信息,謝謝!

版權申明:本站文章(zhāng)部份來自(zì)網絡,如(rú)有侵權,請聯系我們,我們收到後立即删除,謝謝!

特别注意:本站部份轉載文章(zhāng)言論不代表本站觀點,本站所提供的(de)攝影照片,插畫,設計作品,如(rú)需使用,請與原作者聯系,版權歸原作者所有。

微信
網站建設
軟件業務
網絡營銷
400電話