將MSSQL Server 導入/導出到長途辦事器教程的圖文辦法分享。本站提示廣大學習愛好者:(將MSSQL Server 導入/導出到長途辦事器教程的圖文辦法分享)文章只能為提供參考,不一定能成為您想要的結果。以下是將MSSQL Server 導入/導出到長途辦事器教程的圖文辦法分享正文
1、翻開當地企業治理器,先創立一個SQL Server注冊來長途銜接辦事器端口SQL Server。
步調以下圖:
圖1:
2、彈出窗口後輸出內容。"老是提醒輸出上岸名和暗碼"可選可不選,如圖2。
圖2:
3、注冊好辦事器後,點擊翻開。假如是選擇了"老是提醒輸出上岸名和暗碼"的話再點了肯定後會提醒輸出用戶暗碼,如圖3。
圖3:
4、進入後,選擇到您的數據庫,如testdb。在下面點右鍵,"一切義務">>"導入數據",如圖4。
圖4:
5、進入DTS導入/導出領導,點擊“下一步”按鈕持續
圖5:
6、選擇數據源,輸出數據源地點的數據庫辦事器稱號、用戶名、暗碼和要復制數據的源數據庫,點擊“下一步”按鈕
圖6:
7、選擇“在SQL Server數據庫之間復制對象和數據”方法,點“下一步”持續
圖7:
8、這一步可以把"包含擴大屬性"和"排序規矩"兩個選擇上。接著去失落左下的"應用默許選項",點擊右下角的"選項"來停止設置裝備擺設。
圖8:
9、圖8中點"選項"後會彈出圖9,把"復制數據庫用戶和數據庫腳色"與"復制對象級權限"兩個選項去失落,
點肯定回到圖8接著點"下一步"進到圖10。
圖9:
10、設定調劑方法,普通選“立刻運轉”便可以,然後點“下一步”持續
圖10:
11、點"完成"開端履行。
圖11:
12、正在停止數據導入中
圖12:
13、假如一切正常,提醒勝利復制如圖13,那就年夜功樂成了。
圖13:
SQL Server 導入/導出 毛病排查
假如提醒導入掉敗,湧現圖14情形,這時候不要急著點"完成"封閉窗口。雙擊中央的"湧現毛病"會湧現具體的掉敗緣由。
圖14:
毛病緣由1、沒裝置SP3補釘
假如是湧現如圖15的報錯緣由,那末就很有能夠是由於您本機的SQL Server還沒有打SP3補釘。
圖15:
若何檢查能否已打了SP3補釘呢?右鍵點擊當地SQL Server屬性,彈出圖16窗口,檢查"產物版本"一行。
像以下圖顯示8.00.760(SP3)解釋曾經打過補釘。假如您的企業治理器顯示的版本要比這個小,那就是沒打SP3補釘。
存問裝SQL Server SP3補釘後再重試。
圖16:
毛病緣由2、對象屬性抵觸
假如湧現圖17情形,那末應當就是您當地數據庫的表/視圖/存儲進程的屬主和辦事器上數據庫默許用戶紛歧致。
辦事器的用戶普通是:數據庫名+'_f',如我的數據庫稱號是testdb,則我在辦事器上應用的數據庫用戶名就是testdb_f。
如圖18,我當地的表屬主是testuser,與辦事器數據庫用戶名紛歧致,是以導入進程失足。
圖17:
圖18:
處理辦法是:
應當先把當地的一切表/視圖/存儲進程屬主都改成dbo或testdb_f(後者須要在當地創立起響應用戶。
建議創立,不然今後想從辦事器上導出數據時異樣會由於這個成績導失足誤),再從新停止導入/導出。
翻開SQL查詢剖析器,運轉以下敕令停止批量修正表屬主為dbo:
exec sp_MSForEachTable 'sp_changeobjectowner "?", "dbo"'
運轉勝利後表屬主會轉變成如圖19:
圖19:
假如須要修正視圖/存儲進程,則費事了點。
上面有個辦法可以完成:
1、先在master創立一個sp_MSforeachObject存儲進程,敕令以下:
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 */
Declare @isobject varchar(256)
select @isobject= case @objectType when 1 then 'IsUserTable'
when 2 then 'IsView'
when 3 then 'IsTrigger'
when 4 then 'IsProcedure'
when 5 then 'IsDefault'
when 6 then 'IsForeignKey'
when 7 then 'IsScalarFunction'
when 8 then 'IsInlineFunction'
when 9 then 'IsPrimaryKey'
when 10 then 'IsExtendedProc'
when 11 then 'IsReplProc'
when 12 then 'IsRule'
end
/* Create the select */
/* Use @isobject variable isstead of IsUserTable string */
EXEC(N'declare hCForEach cursor global for select ''['' + REPLACE(user_name(uid), N'']'', N'']]'') + '']'' + ''.'' + ''['' +
REPLACE(object_name(id), N'']'', N'']]'') + '']'' from dbo.sysobjects o '
+ N' where OBJECTPROPERTY(o.id, N'''+@isobject+''') = 1 '+N' and o.category & ' + @mscat + N' = 0 '
+ @whereand)
declare @retval int
select @retval = @@error
if (@retval = 0)
exec @retval = sp_MSforeach_worker @command1, @replacechar, @command2, @command3
if (@retval = 0 and @postcommand is not null)
exec(@postcommand)
return @retval
GO
2、再運轉以下敕令批量修正表、觸發器、視圖、存儲進程的屬主(須要先在master創立sp_MSforeachObject存儲進程) EXEc sp_MSforeachObject @command1="sp_changeobjectowner '?', 'dbo'",@objectType=1
EXEc sp_MSforeachObject @command1="sp_changeobjectowner '?', 'dbo'",@objectType=2
EXEc sp_MSforeachObject @command1="sp_changeobjectowner '?', 'dbo'",@objectType=3
EXEc sp_MSforeachObject @command1="sp_changeobjectowner '?', 'dbo'",@objectType=4
此時再從新停止導入應當就可以一切順遂了。