如(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代碼
- exec sp_MSForEachTable 'sp_changeobjectowner "?", "dbo"'
運行成功後表屬主會改變成如(rú)圖19:
圖19:
如(rú)果需要修改視(shì)圖/存儲過程,則麻煩了點。
下面有個方法可(kě)以實現:
一(yī)、先在master創建一(yī)個sp_MSforeachObject存儲過程,命令如(rú)下:
SQL代碼
- USE MASTER
-
- GO
-
- CREATE proc sp_MSforeachObject
-
- @objectType int=1,
-
- @command1 nvarchar(2000),
-
- @replacechar nchar(1) = N'?',
-
- @command2 nvarchar(2000) = null,
-
- @command3 nvarchar(2000) = null,
-
- @whereand nvarchar(2000) = null,
-
- @precommand nvarchar(2000) = null,
-
- @postcommand nvarchar(2000) = null
-
- as
-
- /* This proc returns one or more rows for each table (optionally, matching @where), with each table defaulting to its
-
- own result set */
-
- /* @precommand and @postcommand may be used to force a single result set via a temp table. */
-
- /* Preprocessor won't replace within quotes so have to use str(). */
-
- declare @mscat nvarchar(12)
-
- select @mscat = ltrim(str(convert(int, 0x0002)))
-
- if (@precommand is not null)
-
- exec(@precommand)
-
- /* Defined @isobject for save object type */
- <
文章(zhāng)整理(lǐ):
世紀雲圖 /
以上信息與文章(zhāng)正文是不可(kě)分割的(de)一(yī)部分,如(rú)果您要轉載本文章(zhāng),請保留以上信息,謝謝!
版權申明:本站文章(zhāng)部份來自(zì)網絡,如(rú)有侵權,請聯系我們,我們收到後立即删除,謝謝!
特别注意:本站部份轉載文章(zhāng)言論不代表本站觀點,本站所提供的(de)攝影照片,插畫,設計作品,如(rú)需使用,請與原作者聯系,版權歸原作者所有。