資料庫表拷貝
1. sql語句 怎麼把一個表的數據復制到另外一個表裡面
SQL語句把一個表的數據復制到另外一個表裡面的步驟:
1、打開SQL,登錄到一個資料庫中,依次點擊「工具」——「導出表」,在彈出的界面中選擇一個用戶,列出這個用戶下面的所有表。
2. 如何實現MS SQL中同一資料庫中表與表之間的數據復制
分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:
MS SQL中如何添加大量資料庫?希望你能幫我想想!
解析:
1. 通過工具DTS的設計器進行導入或導出
DTS的設計器功能強大,支持多任務,也是可視化界面,容易操作,但知道的人一般不多,如果只是進行SQL Server資料庫中部分表的移動,用這種方法最好,當然,也可以進行全部表的移動。在SQL Server Enterprise Manager中,展判飢返開伺服器左邊的+,選擇資料庫,右擊,選擇All tasks/Import Data...(或All tasks/Export Data...),進入向導模式,按提示一步一步走就行了,裡面分得很細,可以靈活的在不同數據源之間復制數據,很方便的。而且可以另存成DTS包,如果以後還有相同的復制任務,直接運行DTS包就行,省時省力。也可以直接打肢迅開DTS設計器,方法是展開伺服器名稱下面的Data Transformation Services,選Local Packages,在右邊的窗口中右擊,選New Package,就打開了DTS設計器。值得注意的是:如果源資料庫要拷貝的表有外鍵,注意移動的順序,有時要分批移動,否則外鍵主鍵,索引可能丟失,移動的時候選項旁邊的提示說的很明白,或者一次性的復制到目標資料庫中,再重新建立外鍵,主鍵,索引。
其實建立資料庫時,建立外鍵,主鍵,索引的文件應該和建表文件分開,而且用的數據文件也分開,並分別放在不同的驅動器上,有利於資料庫的優化。
2. 利用Bcp工具
這種工具雖然在SQL Server7的版本中不推薦使用,但許多資料庫管理員仍很喜歡用它,尤其是用過SQL Server早期版本的人。Bcp有局限性,首先它的界面不是圖形化的,其次它只是在SQL Server的表(視圖)與文本文件之間進行復制,但它的優點是性能好,開銷小,佔用內存少,速度快。有興趣的朋友可以查參考手冊。
3. 利用備份和恢復
先對源資料庫進行完全備份,備份到一個設備(device)上,然後把備份文件復制到目的伺服器上(恢復的速度快),進行資料庫的恢復操作,在恢復的資料庫名中填上源資料庫的名字(名字必須相同),選擇強制型恢復(可以覆蓋以前資料庫的選項),在選擇從設備中進行恢復,瀏覽時選中備份的文件就行了。這種方法可以完全恢復資料庫,包括外鍵,主鍵,索引。
4. 直接拷貝數據文件
把資料庫的數據文件(*.mdf)和日誌文件(*.ldf)都拷貝到目的伺服器,在SQL Server Query Analyzer中用語句進行恢復:
EXEC sp_attach_db @dbname = 'test',
@filename1 = 'd:\mssql7\data\test_data.mdf',
@filename2 = 'd:\mssql7\data\test_log.ldf'
這樣就把test資料庫附加到SQL Server中,可以照常使用。如果不想用原來的日誌文件,可以用如下的命令:
EXEC sp_detach_db @dbname = 'test'
EXEC sp_attach_single_file_db @dbname = 'test',
@physname = 'd:\mssql7\data\test_data.mdf'
這個語句的作用是僅僅載入數據文件,日誌文件可以由SQL Server資料庫自動掘飢添加,但是原來的日誌文件中記錄的數據就丟失了。
5. 在應用程序中定製
可以在應用程序(PB、VB)中執行自己編寫的程序,也可以在Query Analyzer中執行,這種方法比較靈活,其實是利用一個平台連接到資料庫,在平台中用的主要時SQL語句,這種方法對資料庫的影響小,但是如果用到遠程鏈接伺服器,要求網路之間的傳輸性能好,一般有兩種語句:
1> select ... into new_tablename where ...
2> insert (into) old_tablename select ... from ... where ...
區別是前者把數據插入一個新表(先建立表,再插入數據),後者是把數據插入已經存在的一個表中,我個人喜歡後者,因為在編程的結構上,應用的范圍上,第二條語句強於前者。
6. SQL Server的復制功能
SQL Server提供了強大的數據復制功能,也是最不易掌握的,具體應用請參考相關資料,值得注意的是要想成功進行數據的復制工作,有些條件是必不可少的:
1>SQL Server Agent必須啟動,MSDTC必須啟動。
2>所有要復制的表必須有主鍵。
3>如果表中有text或image數據類型,必須使用with log選項,不能使用with no_log選項。
另外max text repl size選項控制可以復制的文本和圖像數據的最大規模,超過這個限制的操作將失敗。
4>在要進行復制的計算機上,應該至少是隱含共享,即共享名是C$或D$…。
5>為SQL Server代理使用的Windows NT帳號不能是一個本地的系統帳號,因為本地的系統帳號不允許網路存取。
6>如果參與復制的伺服器在另外的計算機域中,必須在這些域之間建立信任關系。本人從事的工作是資料庫管理員,要維護多台伺服器中的資料庫,經常把某台伺服器中的某個資料庫移動到另外一台伺服器,對數據的移動有些心得體會,希望和大家共同交流。
3. 如何復制MySQL資料庫或表到另外一台伺服器
使用這種方法前,我們需要先下載一個MySQL客戶端工具SqlYog。點擊這里下載並安裝x0dx0ax0dx0a下面我們開始復制資料庫:x0dx0a1、打開SqlYog community Edition,分別在不同的選項卡中打開源資料庫伺服器與目標資料庫伺服器,這一點很重。x0dx0ax0dx0a在源資料庫伺服器選項卡中你將看到所有資料庫列表。x0dx0a2、在需要復制遷移的資料庫上右擊,在彈出菜單中選擇「Copy Database to Different Host/Database」x0dx0a3、在彈出對話框中,我們能看到源資料庫伺服器及目標伺服器,在左邊,通過勾選復選框來選擇需要復制遷移的對象,如表、函數、觸發器等,也可以選擇所有對象。x0dx0a4、在右邊選擇需要遷移的目標伺服器或資料庫x0dx0a5、根據你的需要選擇復制類型:「Structure and Data」或「Structure only」,即「結構和數據」或「僅結構」。x0dx0a6、選擇結束後點擊「Copy」按鈕開始復制,知道數據遷移結束。
4. 如何把一個資料庫的所有表復制到到另一個資料庫
如果另一個庫中沒有同名的表
select
*
into
b資料庫.dbo.a表
from
a資料庫.dbo.a表
where
條件
如果是追加到另一個表中
inert
into
b資料庫.dbo.a表
select
*
from
a資料庫.dbo.a表
where
條件
不同資料庫的格式:
[資料庫名.所有者名.表名]
insert
into
資料庫b.dbo.表2
select
*
from
資料庫a.dbo.表1
where
....
5. 如何將資料庫中一張表的全部內容復制到資料庫中另一張表中
1、首先,打開並連接Sql Server,在源資料庫Source_db(源資料庫名稱)上右鍵,然後依次點擊「編寫表腳本為」→「CREATE到」→「新查詢編輯器窗口」。
6. 如何復制一個表到另一個資料庫中
SQL:復制資料庫某一個表到另一個資料庫中
SELECT * INTO 表1 FROM 表2 --復製表2如果只復制結構而不復制內容或只復制某一列只要加WHERE條件就好了
例子:SELECT * INTO [IMCDB].[dbo].[SysLog] FROM [AimManageDB].[dbo].[SysLog]
(將資料庫AimManageDB中的SysLog表復制到資料庫IMCDB中)
跨伺服器復製表
select * INTO [SMSDB].[dbo].[SysLog] FROM openrowset('sqloledb',『目標伺服器』;'賬號';'密碼',[SMSDB].[dbo].[SysLog])
(將資料庫目標伺服器中的SysLog表復制本地的資料庫SMSDB中)
eg:如果出現以下錯誤:
(SQL Server 阻止了對組件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的訪問,因為此組件已作為此伺服器安全配置的一部分而被關閉。
系統管理員可以通過使用 sp_configure 啟用 'Ad Hoc Distributed Queries'。有關啟用 'Ad Hoc Distributed Queries' 的詳細信息,請參閱 SQL Server 聯機叢書中的
"外圍應用配置器"。)
解決方法:
啟用Ad Hoc Distributed Queries: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure
使用完成後,關閉Ad Hoc Distributed Queries:exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure
2012-8-26 其他導入方法
select * from table1 into table2 table2必須不存在
insert into table2 select * from table1 table2必須存在
7. 如何復製表SQL
1、既復製表結構也復製表內容的SQL語數友句:
CREATE TABLE tab_new AS SELECT * FROM tab_old;
2、薯局槐只復製表結構不復製表內容的SQL語句:
CREATE TABLE tab_new AS SELECT * FROM tab_old WHERE 1=2;
3、不復製表結構,只復制內容的sql語句:
SELECT vale1, value2 into Table2 from Table1
(7)資料庫表拷貝擴展閱讀:
SQL中常用的語句:
1、說明:創建數臘銀據庫
CREATE DATABASE database-name
2、說明:刪除資料庫
drop database dbname
3、說明:創建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表創建新表:
A:create table tab_new like tab_old (使用舊表創建新表)
B:create table tab_new as select col1,col2? from tab_old definition only
4、說明:刪除新表
drop table tabname
5、說明:增加一個列
Alter table tabname add column col type
6、說明:添加主鍵
Alter table tabname add primary key(col)
7、說明:刪除主鍵
Alter table tabname drop primary key(col)
8、說明:創建索引
create [unique] index idxname on tabname(col?.)
9、刪除索引
drop index idxname
8. 如何將一個資料庫表數據復制到另一個資料庫
不同的資料庫語法不同(sql
server和oracle為例),且復制包括目標表已存在和目標表不存在的情況,分別回答:
sql
server中,如果目標表存在:
1
insert
into
目標表
select
*
from
原表;
sql
server中,,如果目標表不存在:
1
select
*
into
目標表
from
原表;
oracle中,如果目標表存在:
1
2
insert
into
目標表
select
*
from
原表;
commit;
oracle中,如果目標表不存在:
1
create
table
目標表
as
select
*
from
原表;
9. SQL server 資料庫 如何把一張表復制到另一個資料庫表中
SQLserver資料庫如何把一張表復制到另一個資料庫表中的方法。
如下參考:
1.首先,在桌面上單擊「ManagementStudio」圖標。
10. 如何將一個資料庫中的一個表復制到另一個資料庫中去
SQL SELECT INTO 語句可用於創建表的備份復件團世
SELECT INTO 語句
SELECT INTO 語句從一個表中選取數沖薯據,然後把數據插入另一個表中。
SELECT INTO 語句常用於創建表的備份復件或者用於對記錄進行存檔
語法
可以把所有的列插入新表:
SELECT*
INTOnew_table_name[INexternaldatabase]
FROMold_tablename--或者只把希望的列插入新表:
SELECTcolumn_name(s)
INTOnew_table_name[INexternaldatabase]
FROMold_tablename
註:如果新表存在,新表與舊表列最散或者好是一致的,不然最好是選擇對應的列插入