如果提示導入失敗,出現圖14情況,這時不要急着點"完成"關閉窗口。雙擊中(zhōng)間的"出現錯誤"會出現詳細的失敗原因。
圖14:
錯誤原因一(yī)、沒安裝SP3補丁
如果是出現如圖15的報錯原因,那麽就很有可能是因爲您本機的SQL Server還沒有打SP3補丁。
圖15:
如何查看是否已打了SP3補丁呢?右鍵點擊本地SQL Server屬性,彈出圖16窗口,查看"産品版本"一(yī)行。
像以下(xià)圖顯示8.00.760(SP3)說明已經打過補丁。如果您的企業管理器顯示的版本要比這個小(xiǎo),那就是沒打SP3補丁。
請安裝SQL Server SP3補丁後再重試。
圖16:
錯誤原因二、對象屬性沖突
如果出現圖17情況,那麽應該就是您本地數據庫的表/視圖/存儲過程的屬主和服務器上數據庫默認用戶不一(yī)緻。
服務器的用戶一(yī)般是:數據庫名+'_f',如我(wǒ)(wǒ)的數據庫名稱是testdb,則我(wǒ)(wǒ)在服務器上使用的數據庫用戶名就是testdb_f。
如圖18,我(wǒ)(wǒ)本地的表屬主是testuser,與服務器數據庫用戶名不一(yī)緻,因此導入過程出錯。
圖17:
圖18:
解決方法是:
應該先把本地的所有表/視圖/存儲過程屬主都改爲dbo或testdb_f(後者需要在本地創建起相應用戶。
建議創建,否則以後想從服務器上導出數據時同樣會因爲這個問題導出錯誤),再重新進行導入/導出。
打開(kāi)SQL查詢分(fēn)析器,運行以下(xià)命令進行批量修改表屬主爲dbo:
SQL代碼
- exec sp_MSForEachTable 'sp_changeobjectowner "?", "dbo"'
運行成功後表屬主會改變成如圖19:
圖19:
如果需要修改視圖/存儲過程,則麻煩了點。
下(xià)面有個方法可以實現:
一(yī)、先在master創建一(yī)個sp_MSforeachObject存儲過程,命令如下(xià):
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 */
- <
文章整理:
世紀雲圖 /
以上信息與文章正文是不可分(fēn)割的一(yī)部分(fēn),如果您要轉載本文章,請保留以上信息,謝謝!
版權申明:本站文章部份來自網絡,如有侵權,請聯系我(wǒ)(wǒ)們,我(wǒ)(wǒ)們收到後立即删除,謝謝!
特别注意:本站部份轉載文章言論不代表本站觀點,本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯系,版權歸原作者所有。