結構一樣的話
insert into 資料庫A.dbo.TableA
select * from 資料庫B.dbo.TableA
另外:
nsert into DDD(欄位1,欄位2,欄位3 .....)
(
select 欄位1,欄位2,欄位3 ..... from AAA,BBB,CCC
)
插入的欄位和查詢的欄位數量類型一致
由於你的誇庫查詢插入
所以在表名前加 庫名.用戶名
insert into B.用戶.DDD(欄位1,欄位2,欄位3 .....)
(
select 欄位1,欄位2,欄位3 ..... from A.用戶.AAA,A.用戶.BBB,A.用戶.CCC
)
如果是sqlserver資料庫,可以在查詢分析器左邊菜單看到表用戶名,
如果你是在A庫下操作,可以省去A庫表的庫名.用戶名,同理B庫表也一樣
2. 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
個人覺得最好的方法還是備份還原,這樣這個資料庫都可以復制。當然這個方法不是什麼時候都能使用的
3. SQL資料庫怎麼重新復製表
MSSQL中是不能這樣復制
粘貼的。
可以這樣呀:select
*
from
[表1]
into
[表1復件]
這樣是復制數據,不能復制索引、觸發器、關系等。
記得在下次備份數據之前執行一句:truncate
table
[表1復件],消除[表1復件]
中的數據,以免數據重復。
4. sql將一個資料庫的表復制到另一個資料庫的表中
MS SQL用法如下:
在資料庫A上操作
INSERT INTO [user]
SELECT * FROM opendatasource( 'SQLOLEDB','Data Source=ip/ServerName;User ID=登陸名;Password=密碼').B資料庫.dbo.bakuser
WHERE DATEPART(yy,yf) < 2010
5. SQL資料庫怎麼重新復製表啊
MSSQL中是不能這樣復制 粘貼的。
可以這樣呀:select * from [表1] into [表1復件]
這樣是復制數據,不能復制索引、觸發器、關系等。
記得在下次備份數據之前執行一句:truncate table [表1復件],消除[表1復件] 中的數據,以免數據重復。
6. sql 復制不同資料庫相同表的部分欄位,該如何操作
兩個資料庫之間直接復制只有access支持,別的庫得用數據介面
7. sql如何把一個表中的欄位復制到另一個表中
用更新語句就行了,比如update username1 set username1.name=stuinfo.xm from username1,stuinfo
8. SQL不同表復制欄位
先建立兩個資料庫之間的連接,
然後使用如下SQL語句
INSERT INTO SERVER1(192.168.0.1)..A a
SELECT * FROM SERVER2(192.168.0.2)..A1 a1
WHERE NOT EXISTS (select 1 from a where a.LSBH = a1.LSBH)
ORDER BY a1.LSBH
;
9. sql創建一個表,復制兩個表的欄位,怎麼寫sql
表3存在的話:
insertintoCselecta.aa,a.b1,a.c1,b.b2,b.c2froma,bwherea.aa=b.aa
表3不存在的話,看什麼資料庫:
oracle,mysql
createtablecasselecta.aa,a.b1,a.c1,b.b2,b.c2froma,bwherea.aa=b.aa
sqlserver,access等:
selecta.aa,a.b1,a.c1,b.b2,b.c2intoCfroma,bwherea.aa=b.aa
10. sql server資料庫 如何實現將某表某一列的所有值復制到另一表的某一行某一列的一個欄位中
寫sql語句,用列轉行的形式,估計sql語句有點復雜,不熟悉的要點功夫才能寫出來,不知道你會不會寫