① 如何復制資料庫的結構
首先不是備份數據--還原數據,這樣是連數據都復制過去了,方法如下:
右擊A數據選擇「所有任務」》》」導出腳本「,這樣就導出了這個資料庫所有表(可以選擇,包括主鍵,什麼的)的創建語句
② 如何將資料庫中的表結構和數據復制到另一個資料庫
首先,打開並連接sql Server,在源資料庫Source_db(源資料庫名稱)上右鍵,然後依次點擊「編寫表腳本為」→「CREATE到」→「新查詢編輯器窗口」。
在第1步產生的編輯器中按」crtl+a「組合鍵全選內容,然後右鍵「復制「(或按"crtl+c"鍵)。
新建查詢,然後右鍵」粘貼「(或ctrl+v);如圖所示,將代碼中Source_db(源資料庫名)改為target_db(目標資料庫名)。接著右鍵單擊」執行「執行代碼。
然後,在目標資料庫的表結構中就可以看到被復制過來的表了。
③ 怎樣在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導入導出向導「,根據提示步驟操作。
選擇數據源(源資料庫)。
選擇目標(目標資料庫)、指定表復制或查詢。
選擇源表和源視圖:設置源表和目標表後,單擊「編輯映射」按鈕,在彈出窗口中選中「啟用標識插入」。(否則後面會出錯)
一直點擊「下一步」至最後完成操作。
④ 資料庫表結構能不能復制到新表中
可以的,比如原來的資料庫是:
表1
(路徑是
C:\TEST)
要復制到的新表是:
表2
(路徑是
C:\TEST)
USE
C:\TEST\表1
COPY
STRUCTURE
TO
C:\TEST\表2
這樣
表1
的結構就復制到
一個空的
表2
中了.
⑤ 如何用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
-----------------------創建存儲過程結束--------------------
⑥ 在sqlserver資料庫中怎麼復制相同的表結構的方法
把a的表結構復制到a1表,1=2不復制數據,如果要復制數據,就不要where
select
*
into
a1
from
a
where
1=2
注意:這種方式不能復制
主鍵
、索引等信息
如果要全部復制,只能是在a表上按右鍵,選擇「編寫表腳本為」=》Create
然後在這個結構基礎上把a改成a1(註:要在設置里選擇編寫索引腳本)
⑦ 在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
⑧ 在sqlserver資料庫中怎麼復制相同的表結構的方法
12--------------新表 ↓ 要復制的源表↓Select * Into newTable From sourceTable
這個語句會將sourceTable結構包括數據全部復制一份放到新表中newTable 是新表的名字,在執行前newTable 表不能已存在,如果只復制結構不要數據
12Select top 1 * Into newTable From sourceTable --少要點只要一行truncate table newTable --清除掉數據
關於
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
⑨ 如何將資料庫中一張表的全部內容復制到資料庫中另一張表中
1、首先,打開並連接Sql Server,在源資料庫Source_db(源資料庫名稱)上右鍵,然後依次點擊「編寫表腳本為」→「CREATE到」→「新查詢編輯器窗口」。
⑩ 如何將一個資料庫的表結構復制到另一個資料庫
首先,打開並連接sql
server,在源資料庫source_db(源資料庫名稱)上右鍵,然後依次點擊「編寫表腳本為」→「create到」→「新查詢編輯器窗口」。
在第1步產生的編輯器中按」crtl+a「組合鍵全選內容,然後右鍵「復制「(或按"crtl+c"鍵)。
新建查詢,然後右鍵」粘貼「(或ctrl+v);如圖所示,將代碼中source_db(源資料庫名)改為target_db(目標資料庫名)。接著右鍵單擊」執行「執行代碼。
然後,在目標資料庫的表結構中就可以看到被復制過來的表了。