當前位置:首頁 » 編程語言 » sql復制資料庫

sql復制資料庫

發布時間: 2022-01-16 20:18:52

① 如何用sql語句復製表的結構,復制整個資料庫

1.復製表結構:只能復製表的欄位,不能復制主鍵、索引等

select top 0 * into 新表名 from 原表名

2.復制整個資料庫結構及數據:

create datebase Test --創建目標資料庫
exec P_CopyDB @Source_DB='aspnet',@Des_DB='test' --把源資料庫整個復制到目標資料庫

P_CopyDB存儲過程創建過程如下

-----------------------創建存儲過程開始--------------------

create proc P_CopyDB
@Des_DB sysname, --目標資料庫
@Obj_Type nvarchar(4000)=N'',--復制的對象類型,可以是下列字元串列表:
-- O 所有對象,D 默認值,R 規則,P 存儲過程
-- T 表,TR 觸發器,DT 用戶定義數據類型
-- V 視圖,DATA 數據,DEL 刪除目標對象
@Source_DB sysname=N'', --源資料庫
@ServerName sysname=N'', --伺服器名
@UserName sysname=N'', --用戶名,不指定則表示使用 Windows 身份登錄
@pwd sysname=N'' --密碼
AS
SET NOCOUNT ON
DECLARE @srvid int,@Dbid int,@S_dbid int,@D_dbid int,@TransferID int,
@err int,@src varchar(255), @desc varchar(255)

IF ISNULL(@ServerName,N'')=N'' SET @ServerName='.'--默認為本地資料庫
IF ISNULL(@Source_DB,N'')=N'' SET @Source_DB=DB_NAME()

--創建sqldmo對象·
EXEC @err=sp_oacreate 'sqldmo.sqlserver',@srvid OUT
IF @err<>0 GOTO lb_Err

--連接伺服器
IF ISNULL(@UserName,N'')=N'' --使用 Windows 身份登錄
BEGIN
EXEC @err=sp_oasetproperty @srvid,'loginsecure',-1
IF @err<>0 GOTO lb_Err

EXEC @err=sp_oamethod @srvid,'connect',NULL,@servername
END
ELSE
EXEC @err=sp_oamethod @srvid,'connect',NULL,@servername,@UserName,@pwd

IF @err<>0 GOTO lb_Err

--獲取資料庫集
EXEC @err=sp_oagetproperty @srvid,'databases',@Dbid OUT
IF @err<>0 GOTO lb_Err

--選擇源資料庫
EXEC @err=sp_oamethod @Dbid,'item',@S_dbid OUT,@Source_DB
IF @err<>0 GOTO lb_Err

--選擇目標資料庫
EXEC @err=sp_oamethod @Dbid,'item',@D_dbid OUT,@Des_DB
IF @err<>0 GOTO lb_Err

--設置復制的對象
EXEC @err=sp_oacreate 'SQLDMO.Transfer',@TransferID OUT
IF @err<>0 GOTO lb_Err

--設置目標伺服器信息
EXEC @err=sp_oasetproperty @TransferID,'DestServer',@ServerName
IF @err<>0 GOTO lb_Err

--設置連接用戶
IF ISNULL(@UserName,N'')=N'' --使用 Windows 身份登錄
BEGIN
EXEC @err=sp_oasetproperty @TransferID,'DestUseTrustedConnection',1
IF @err<>0 GOTO lb_Err
END
ELSE
BEGIN
EXEC @err=sp_oasetproperty @TransferID,'DestLogin',@UserName
IF @err<>0 GOTO lb_Err

EXEC @err=sp_oasetproperty @TransferID,'DestPassword',@pwd
IF @err<>0 GOTO lb_Err
END

--設置復制對象信息
EXEC @err=sp_oasetproperty @TransferID,'DestDatabase',@Des_DB
IF @err<>0 GOTO lb_Err

DECLARE tb CURSOR FAST_FORWARD LOCAL
FOR
SELECT Name FROM(
SELECT KeyWord=N',D,', Name=N'CopyAllDefaults' UNION ALL
SELECT KeyWord=N',O,', Name=N'CopyAllObjects' UNION ALL
SELECT KeyWord=N',R,', Name=N'CopyAllRules' UNION ALL
SELECT KeyWord=N',P,', Name=N'CopyAllStoredProceres' UNION ALL
SELECT KeyWord=N',T,', Name=N'CopyAllTables' UNION ALL
SELECT KeyWord=N',TR,', Name=N'CopyAllTriggers' UNION ALL
SELECT KeyWord=N',DT,', Name=N'CopyAllUserDefinedDatatypes' UNION ALL
SELECT KeyWord=N',V,', Name=N'CopyAllViews' UNION ALL
SELECT KeyWord=N',DATA,',Name=N'CopyData' UNION ALL
SELECT KeyWord=N',DEL,', Name=N'DropDestObjectsFirst'
)A WHERE CHARINDEX(KeyWord,
CASE WHEN ISNULL(@Obj_Type,N'')='' THEN ',O,DATA,' ELSE @Obj_Type END)>0
OPEN tb
FETCH tb INTO @src
WHILE @@FETCH_STATUS=0
BEGIN
EXEC @err=sp_oasetproperty @TransferID,@src,1
IF @err<>0 GOTO lb_Err
FETCH tb INTO @src
END
CLOSE tb
DEALLOCATE tb

--復制對象
EXEC @err=sp_oamethod @S_dbid,'Transfer',null,@TransferID
IF @err<>0 GOTO lb_Err

--結束
SET @err=0
GOTO lb_Exit

--錯誤處理
lb_Err:
EXEC sp_oageterrorinfo NULL, @src OUT, @desc OUT
RAISERROR(N'錯誤編號 %#x, 錯誤源 "%s", 錯誤描述 "%s"',16,1,@err,@src,@desc)
RETURN -1

lb_Exit:
EXEC sp_OADestroy @Dbid
EXEC sp_OADestroy @srvid
EXEC sp_OADestroy @TransferID
RETURN @err
GO

-----------------------創建存儲過程結束--------------------

② sql 資料庫拷貝復制

這個多了,如果老空間和新空間的資料庫是一樣的(如都是sqlserver的),一般情況下使用資料庫的備份恢復到新空間的資料庫即可,如果不是同一種資料庫,這個相對較為麻煩,一般情況下在舊空間使用每張表採用文本文件方式進行數據導出,然後在新空間將每個表的文本文件數據導入到新空間的每張表裡,如舊空間資料庫是sqlserver,一般採用sqlserver自帶的bcp工具將每張表數據導出成文本文件,然後將這些文本文件以asc碼方式傳輸到新空間里去,假設新空間資料庫是oracle的,則在新空間使用oracle的自帶文本導入工具sqlldr將來自sqlserver的文本文件數據導入到oracle的資料庫對應的表裡即可。

③ Sql Server 怎麼復制一個資料庫

法一:在企業管理器里找到資料庫,右鍵,屬性,可以看到資料庫文件路徑,然後停止服務管理器,就是右下角的綠色三角,然後去拷貝一份數據文件。
然後在企業管理器里附加資料庫,換一個名字里就可以了。這樣就是2份一模一樣的資料庫。到時候程序里選擇性的連接就OK了
法二。企業管理器,新建一個資料庫,選擇該資料庫,右鍵,備份資料庫。好了後選擇還原資料庫。要在選項卡的「在現有資料庫上強制還原」復選框那裡打勾
效果一樣,但是要注意路徑要是本身存在的,否則報錯,(此方法無需停止服務管理器,但是操作不細致容易出錯)

④ sql server 2000 復制資料庫

資料庫表間數據復制 在利用資料庫開發時,常常會將一些表之間的數據互相導入。當然可以編寫程序實現,但是,程序常常需要開發環境,不方便。最方便是利用sql語言直接導入。既方便而修改也簡單。以下就是導入的方法。
1。表結構相同的表,且在同一資料庫(如,table1,table2)

Sql :insert into table1 select * from table2 (完全復制)

insert into table1 select distinct * from table2(不復制重復紀錄)

insert into table1 select top 5 * from table2 (前五條紀錄)

2。 不在同一資料庫中(如,db1 table1,db2 table2)

sql: insert into db1..table1 select * from db2..table2 (完全復制)

insert into db1..table1 select distinct * from db2table2(不復制重復紀錄)

insert into tdb1..able1 select top 5 * from db2table2 (前五條紀錄)

3. 表結構不同的表或復制部分紀錄(如,dn_user,dn_user2)

a. 建一個新表[DN_UserTemp](在老表dn_user上增加一列)

⑤ SQL中復制一個表到另外一個資料庫中

在SQL Server Management Studio中,使用「SQL Server導入和導出向導」,可以很容易地復製表。

如果一定要使用語句,假設你的架構是dbo,在DBERP資料庫中運行:
select * into U_物料編碼 from DBTEST.dbo.U_物料編碼
如果有索引,創建索引。如果有約束,創建約束。
如果兩個資料庫不在同一個實例,先創建連接伺服器。

⑥ SQL語句 怎麼把一個表的數據復制到另外一個表裡面

SQL語句把一個表的數據復制到另外一個表裡面的步驟:

1、打開SQL,登錄到一個資料庫中,依次點擊「工具」——「導出表」,在彈出的界面中選擇一個用戶,列出這個用戶下面的所有表。

⑦ sql server 怎麼復制一個整個資料庫到另一個資料庫

  • 首先,新建一個資料庫,資料庫名字為【fu】

  • 然後【右擊】選擇想要從中獲取數據的資料庫,選擇【任務】,選擇【導入數據】

  • 然後進入導入第一個頁面,然後點擊下一步

  • 然後填寫想要從中導入數據的資料庫配置信息,點擊下一步

  • 然後填寫fu的配置信息,點擊下一步

  • 然後選擇第一個,點擊下一步

  • 然後選擇所有的表數據,點擊下一步

  • 選中立即運行,點擊下一步

  • 然後都是下一步,然後完成,就可以導入數據了

  • 導入完成之後,就可以看到fu的數據里的表數據了

或者把SQL服務先停止,然後拷出來mdf文件和ldf文件,然後"分離和附加",提示改名,就OK了。

⑧ 如何用sql,復制一個資料庫

自認為不是高手
--------------------------------

--在master中創建student表
use master
go
create table student
(
id int IDENTITY (1,1),
name varchar(20),
age int
)

--插入2條測試數據
insert into student
select '周傑倫','100'
union
select '蔡依林','1000'

--查詢數據
select * from student

--創建測試資料庫
create database test

--復制插入到新的資料庫test
--語句原型 select * into 資料庫.dbo.新表名 from 要復制的表
--fromstudent這個表不需要創建由into自動創建
select * into test.dbo.fromstudent from master.dbo.student

--查詢新表的數據
select * from test.dbo.fromstudent

--fromstudent和student的表結構數據都一樣

⑨ sql server復制資料庫

假如你是通過腳本寫的,直接復制腳本就可以了

熱點內容
安卓手機怎麼注冊蘋果雲 發布:2024-11-15 01:05:00 瀏覽:407
資料庫設計模板 發布:2024-11-15 00:47:25 瀏覽:825
編程的悟性 發布:2024-11-15 00:47:24 瀏覽:733
主流可編譯語言 發布:2024-11-15 00:42:23 瀏覽:729
excel緩存清除 發布:2024-11-15 00:39:53 瀏覽:486
機械鍵盤可編程 發布:2024-11-15 00:39:09 瀏覽:912
php判斷字元開頭 發布:2024-11-15 00:35:33 瀏覽:507
網易蘋果游戲怎麼轉移到安卓 發布:2024-11-15 00:07:52 瀏覽:270
win7php環境搭建 發布:2024-11-15 00:06:55 瀏覽:17
erpjava 發布:2024-11-14 23:52:23 瀏覽:253