當前位置:首頁 » 編程語言 » sqlserver拷貝表結構
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver拷貝表結構

發布時間: 2023-05-12 06:38:50

Ⅰ 如何復制sql表結構用數據及數據

我要復制aaa資料庫中的表,及表內的數據,到bbb資料庫中,
2: 到安裝SQLSERVER的目錄下,把aaa_Data.MDF,aaa_Log.LDF復制到外面,更名為bbb_Data.MDF,bbb_Log.LDF,再復制回去覆蓋原先存的搏凱bbb資料庫文件;
3:打基肆喚開SQLserver service Manager。
你將會發現aaa資料庫中的表,及表內的數據,已到bbb資料庫中。
另一種方法就是用SQL2000的本身特點了,這個你要看書了,呵呵!Top3 樓dpzhou(大米周)
還不如直接備份一份,然後還原了Top4 樓dana(dana)
Sql.Add(' SELECT * INSTO AddTable FROM OldTable ');ExecSQL;end;Top6 樓angiin(末熊)
oracle為:create table bbb as select * from aaa
sqlserver為:select * into bbb from aaaTop7 樓dana(dana)
是在SQL資料庫中的兩個資料庫啊,不是兩個表。
Top8 樓dana(dana)
1:新建一個bbb資料庫,然後關掉SQLserver service Manager;(就是右下角那個綠三角)
2: 到安裝SQLSERVER的目錄下,把aaa_Data.MDF,aaa_Log.LDF復制到外面,更名為bbb_Data.MDF,bbb_Log.LDF,雹判再復制回去覆蓋原先存的bbb資料庫文件;
3:打開SQLserver service Manager。
你將會發現aaa資料庫中的表,及表內的數據,已到bbb資料庫中。

Ⅱ sql server 如何完整復製表 包括表結構,索引,欄位說明,依賴關系等等

復製表結構的通用存儲過程

--Transfer對象的重要屬性

--1.屬性

屬性名類型描述
------------------------------------------------------------------------
CopyAllDefaultsBoolean所有默認值
CopyAllObjectsBoolean所有對象
CopyAllRulesBoolean所有規則
CopyAllStoredProceresBoolean所有存儲過程
CopyAllTablesBoolean所有表
CopyAllTriggersBoolean所有觸發器
所有用戶自定義類型
CopyAllViewsBoolean所有視圖
CopyDataBoolean所有數據
DestDatabaseString目標對象資料庫
DestLoginString目標資料庫登陸用戶名
DestPasswordString目標資料庫登陸密碼
DestServerString目標伺服器
用戶信任連接
DropDestObjectsFirstBoolean是否先刪除目標對象
IncludeDependenciesBoolean是否包含依靠對象
ScriptTypeBoolean腳本類型

--2.重要方法:

方法名稱功能描述
-----------------------------------------------------
AddObject增加對象
AddObjectByName通過對象名稱增加對象

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[P_CopyDB]')andOBJECTPROPERTY(id,N'IsProcere')=1)
dropprocere[dbo].[P_CopyDB]
GO

/*--在SQLServer中使用SQLDMO.Transfer實現數據遷移
存儲過程實現源資料庫到目標資料庫的對象和數據的復制
要求源資料庫和目標資料庫在同一伺服器
如果是要實現不同伺服器之間的復制,則需要增加驗證信息
--鄒建2005.07(引用請保留此信息)--*/

/*--調用示例

CREATEDATABASEtest
EXECP_CopyDB@Source_DB='northwind',@Des_DB='test'
DROPDATABASEtest
--*/
CREATEPROCEDUREP_CopyDB
@Des_DBsysname,--目標資料庫
@Obj_Typenvarchar(4000)=N'',--復制的對象類型,可以是下列字元串列表:
--O所有對象,D默認值,R規則,P存儲過程
--T表,TR觸發器,DT用戶定義數據類型
--V視圖,DATA數據,DEL刪除目標對象
@Source_DBsysname=N'',--源資料庫
@ServerNamesysname=N'',--伺服器名
@UserNamesysname=N'',--用戶名,不指定則表示使用Windows身份登錄
@pwdsysname=N''--密碼
AS
SETNOCOUNTON
DECLARE@srvidint,@Dbidint,@S_dbidint,@D_dbidint,@TransferIDint,
@errint,@srcvarchar(255),@descvarchar(255)

IFISNULL(@ServerName,N'')=N''SET@ServerName=@@SERVERNAME
IFISNULL(@Source_DB,N'')=N''SET@Source_DB=DB_NAME()

--創建sqldmo對象·
EXEC@err=sp_oacreate'sqldmo.sqlserver',@srvidOUT
IF@err<>0GOTOlb_Err

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

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

IF@err<>0GOTOlb_Err

--獲取資料庫集
EXEC@err=sp_oagetproperty@srvid,'databases',@DbidOUT
IF@err<>0GOTOlb_Err

--選擇源資料庫
EXEC@err=sp_oamethod@Dbid,'item',@S_dbidOUT,@Source_DB
IF@err<>0GOTOlb_Err

--選擇目標資料庫
EXEC@err=sp_oamethod@Dbid,'item',@D_dbidOUT,@Des_DB
IF@err<>0GOTOlb_Err

--設置復制的對象
EXEC@err=sp_oacreate'SQLDMO.Transfer',@TransferIDOUT
IF@err<>0GOTOlb_Err

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

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

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

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

DECLAREtbCURSORFAST_FORWARDLOCAL
FOR
SELECTNameFROM(
SELECTKeyWord=N',D,',Name=N'CopyAllDefaults'UNIONALL
SELECTKeyWord=N',O,',Name=N'CopyAllObjects'UNIONALL
SELECTKeyWord=N',R,',Name=N'CopyAllRules'UNIONALL
SELECTKeyWord=N',P,',Name=N'CopyAllStoredProceres'UNIONALL
SELECTKeyWord=N',T,',Name=N'CopyAllTables'UNIONALL
SELECTKeyWord=N',TR,',Name=N'CopyAllTriggers'UNIONALL
SELECTKeyWord=N',DT,',Name=N'CopyAllUserDefinedDatatypes'UNIONALL
SELECTKeyWord=N',V,',Name=N'CopyAllViews'UNIONALL
SELECTKeyWord=N',DATA,',Name=N'CopyData'UNIONALL
SELECTKeyWord=N',DEL,',Name=N'DropDestObjectsFirst'
)AWHERECHARINDEX(KeyWord,
CASEWHENISNULL(@Obj_Type,N'')=''THEN',O,DATA,'ELSE@Obj_TypeEND)>0
OPENtb
FETCHtbINTO@src
WHILE@@FETCH_STATUS=0
BEGIN
EXEC@err=sp_oasetproperty@TransferID,@src,1
IF@err<>0GOTOlb_Err
FETCHtbINTO@src
END
CLOSEtb
DEALLOCATEtb

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

--結束
SET@err=0
GOTOlb_Exit

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

lb_Exit:
EXECsp_OADestroy@Dbid
EXECsp_OADestroy@srvid
EXECsp_OADestroy@TransferID
RETURN@err
GO

個人覺得最好的方法還是備份還原,這樣這個資料庫都可以復制。當然這個方法不是什麼時候都能使用的

Ⅲ 如何在Oracle中復製表結構和表數據

1、如圖:SQLSERVER 復製表數據 直接應用畢禪select into 。


Ⅳ 在sqlserver資料庫中怎麼復制相同的表結構的方法

--------------新表↓要復制的源表↓
Select*IntonewTableFromsourceTable


這個語句會將sourceTable結構包括數據全部復制一份放到新表中newTable是新表的名字,在執行前newTable表不能已存在,如果只復制結構不要數據


Selecttop1*IntonewTableFromsourceTable--少要點只要一行
truncatetablenewTable--清除掉數據


關於 select into 語句:


SQL SELECT INTO 語句可用於創建表的備份復件。

SELECT INTO 語句

SELECT INTO 語句從一個表中選取數據,然後把數據插入另一個表中。

SELECT INTO 語句常用於創建表的備份復件或者用於對記錄進行存檔。

SQL SELECT INTO 語法

您可以把所有的列插入新表:

SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename

或者只把希望的列插入新表:

SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename

SQL SELECT INTO 實例 - 製作備份復件

下面的例子會製作 "Persons" 表的備份復件:

SELECT *
INTO Persons_backup
FROM Persons

IN 子句可用於向另一個資料庫中拷貝表:

SELECT *
INTO Persons IN 'Backup.mdb'
FROM Persons

如果我們希望拷貝某些域,可以在 SELECT 語句後列出這些域:

SELECT LastName,FirstName
INTO Persons_backup
FROM Persons

SQL SELECT INTO 實例 - 帶有 WHERE 子句

我們也可以添加 WHERE 子句。

下面的例子通過從 "Persons" 表中提取居住在 "Beijing" 的人的信息,創建了一個帶有兩個列的名為 "Persons_backup" 的表:

SELECT LastName,Firstname
INTO Persons_backup
FROM Persons
WHERE City='Beijing'

SQL SELECT INTO 實例 - 被連接的表

從一個以上的表中選取數據也是可以做到的。

下面的例子會創建一個名為 "Persons_Order_Backup" 的新表,其中包含了從 Persons 和 Orders 兩個表中取得的信息:

SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P

Ⅳ 怎樣在sql server不同的資料庫之間復製表結構和數據

方式一、如果寫代碼
select
*
into
[目標資料庫b].dbo.表名
from.
[源資料庫a].dbo.表名
方式二、如果不寫代碼,可以用導入的方式
復製表結構(如果目標資料庫已經存在,此步跳過)
1、打開並連接sql
server,在源資料庫data_a(源資料庫名稱)上右鍵,然後依次點擊「編寫表腳本為」→「create到」→「新查詢編輯器窗口」。
2、在第1步產生的編輯器中按」crtl+a「組合鍵全選內容,然後右鍵「復制「(或按"crtl+c"鍵)。
3、新建查詢,然後右鍵「粘貼」(或ctrl+v);如圖所示,將代碼中data_a(源資料庫名)改為data_b(目標資料庫名)。接著右鍵單擊」執行「執行代碼。
4、在目標資料庫的表結構中就可以看到被復制過來的表了。
表的數據內容復制
選中目標資料庫data_b然後點擊」任務「→」導入數據「。
進入」sql
server導入導出向導「,根據提示步驟操作。
選擇數據源(源資料庫)。
選擇目標(目標資料庫)、指定表復制或查詢。
選擇源表和源視圖:設置源表和目標表後,單擊「編輯映射」按鈕,在彈出窗口中選中「啟用標識插入」。(否則後面會出錯)
一直點擊「下一步」至最後完成操作。

Ⅵ 在sqlserver資料庫中怎麼復制相同的表結構的方法

我所用的笨辦法就是企業管理器中,先把原有的表導入sql腳本,然後再通過sqlserver的查詢分析器,連接到你的目的資料庫,然後再把剛才導出的sql腳本復制到查詢分析器里運行就可以了,運行成功後在查看一下目的資料庫中是不是已經多了一個表,如果還是沒有的話就多刷新一下就出來了!

在表上點擊右建-選擇-生成sql 腳本

直接點擊確定-然後選擇保存的路徑和文件名就可以了
以上說的這些只是在另一個資料庫生成了一個相同的表結構而已,是一個空表,沒有數據,關於把另一個表中的數據復制過來的操作就很簡單了,如果是簡單的幾行記錄的話就直接選中數據源表中的記錄,然後粘貼進目的表就ok了!
如果要是復制的記錄比較多的話就直接在目的表上點擊右鍵選擇「導入數據」,然後點擊「下一步」,選擇數據源(這個就不用詳細說了,直接按提示操作就可以了),選擇目的數據表,選擇完後一直點擊下一步,最後點擊確定,復製成功後會有提示成功,如果沒有成功的話就要查看一下是什麼原因,一般情況下都不會有問題的,因為兩個表的表結構已經一模一樣了,所以不會出錯了!

Ⅶ sqlserver如何從A資料庫復製表M到B資料庫N表中

sqlserver從A資料庫復製表M到B資料庫N表中的方法如下:

1、首先要保證的是B庫的TestTableB1 表結構和A庫的TestTableA1 表結構相同.

SET IDENTITY_INSERT DataBaseB.dbo.TestTableB1 ON

2、導入前開啟IDENTITY_INSERT為ON

INSERT DataBaseB.dbo.TestTableB1 --目標資料庫表(需要導入的庫表)
( TestId,
TestName
)
SELECT
TestId,
TestNameFROM DataBaseA.dbo.TestTableA1 --源資料庫表(需要導出的庫表)

SET IDENTITY_INSERT DataBaseB.dbo.TestTableB1 OFF。

3、導入後關閉IDENTITY_INSERT為OFF。

Ⅷ 在sqlserver資料庫中怎麼復制相同的表結構的方法

把a的表結構復制到a1表,1=2不復制數據,如果要復制數據,就不要where
select
*
into
a1
from
a
where
1=2
注意:這種方式不能復制
主鍵
、索引等信息
如果要全部復制,只能是在a表上按右鍵,選擇「編寫表腳本為」=》Create
然後在這個結構基礎上把a改成a1(註:要在設置里選擇編寫索引腳本)

Ⅸ SQL server 資料庫 如何把一張表復制到另一個資料庫表中

SQLserver資料庫如何把一張表復制到另一個資料庫表中的方法。

如下參考:

1.首先,在桌面上單擊「ManagementStudio」圖標。