一.同一資料庫中兩個不同的表中結構,資料的複製
有如下三個表:
表a:欄位1, 欄位2, 欄位3
表b:欄位1, 欄位2, 欄位3
表c:欄位1, 欄位2, 欄位3
現在想複製a表的字段1,b表的字段2,c表的字段3到表4中去。不需要表中的資料。
用sql語句應如何實現呢?
答:其實,這裡需要考慮乙個問題,所到的指定表是不是空表?所以,我們有以下兩種情況分別說說: /*table4不存在時*/
select a.col1, b.col2, c.col3
into table4
from tablea a, tableb b, tablec c
where 1 = 0
但是,一旦表4已經存在的話,會報錯。如果是想在表4中增加這幾個字段,但這些欄位的資料不需要新增到表4中來 select
*into 表5
from
表4 m
left join
(select a.欄位1,b.欄位2,c.欄位3 from 表a a,表b b,表c c where 1<>1) n
on1=1
drop table 表4
exec sp_rename '表5','表4'
二、1.相同兩個表內容複製
insert into 目標資料庫名.dbo.表名 select * from 源資料庫名.dbo.表名
2.說明:複製表(只複製結構,源表名:a 新錶名:b)
sql: select * into b from a where 1<>1
3.說明:拷貝表(拷貝資料,源表名:a 目標表名:b)
sql: insert into b(a, b, c) select d,e,f from b;
二.不同資料庫(或不同主機上不同資料庫)間表的結構,資料的複製
建立兩個連線 !!
--建立鏈結伺服器
exec sp_addlinkedserver 'srv_lnk','','sqloledb','遠端伺服器名或ip位址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'使用者名稱','密碼'
go --查詢示例
select * from srv_lnk.資料庫名.dbo.表名
--匯入示例
select * into 表 from srv_lnk.資料庫名.dbo.表名
這句話一定要寫在將要匯入的表所在的資料庫中
--以後不再使用時刪除鏈結伺服器
exec sp_dropserver 'srv_lnk','droplogins'
go --如果只是臨時訪問,可以直接用openrowset
--查詢示例
select * from openrowset('sqloledb'
,'sql伺服器名';'使用者名稱';'密碼'
,資料庫名.dbo.表名)
這裡好像有點問題,我試了一下應該是這樣的:select * from openrowset('sqloledb','192.168.24.200';
'abc';'123','20081141.dbo.style'),上面的語句中缺單引號
--匯入示例
select * into 表 from openrowset('sqloledb'
,'sql伺服器名';'使用者名稱';'密碼'
,資料庫名.dbo.表名)
在呼叫!!
SQLSEVER系統資料庫表
master select from msreplication options select from spt fallback db select from spt fallback dev select from spt fallback usg select from spt monitor...
不同activity之間資料的傳遞
不同activity之間的資料的傳遞有多種方式,這裡主要記錄兩種方式。第一種是通過bundle來傳遞資料,第二種方法就是直接通過intent來傳遞資料。通過bundle來傳遞資料,首先在主activity中將需要傳遞的資料封裝儲存到bundle中,該部分 如下 bundle bundle new b...
hadoop 不同集群之間資料拷貝
hadoop不同集群之間資料拷貝,拷貝時兩個集群要用active namenode去拷貝,datanode是不具備拷貝功能的,所以當我們把資料拿到hdfs路徑上時,要去判斷當前集群哪個主節點是active的,所以大致步驟為 資料落到hdfs上 beeline u jdbc hive2 e inser...