當前位置:首頁 » 編程語言 » sql跨實例作業
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql跨實例作業

發布時間: 2023-03-06 02:30:48

1. sql資料庫問題

  1. create table TableX(Code varchar(10), Name varchar(50), Age varchar(10));

  2. d

  3. select * from TableX where Name like '張%' order by Age asc;

  4. select * from TableX, TableY where xCode=yCode and Class='計算機' and score<60;

  5. select TableX.Name,TableY.Class,TableY.Score from TableX,TableY where xCode=yCode;

  6. insert into TableX (xCode,Name,Age) values(『97005』,『趙六』,『20』);

  7. update TableX set Age=21 where xCode='97004';

  8. delete from TableX where xCode not in(select xCode from TableY);

2. sql實例運用

刪除 delete from 書籍 where id(select id from 書籍)
select Id,Title,Author,PublisherId,UnitPrice from 書籍 group by Id,Title,Author,PublisherId,UnitPrice

3. SQL server跨實例查詢

select d.lb as 類別,a.hh as 貨號,d.pm as 品名,d.bm as 別名,a.kh as 位置,d.cd as 產地,d.gg as 規格, d.pdw as 劑型,b.sssl as 進貨量,c.sl as 總銷量,a.sjsl as 當前庫存, d.cgry as 采購員,d.sx as 屬性,d.jj as 進價,d.lsj as 零售價,isnull(f.sj,0) as 會員價
from ywbalance a
left join (select hh,sum(sssl) as sssl from rkdzk where (kdrq between '2009-4-1' and '2009-6-30') group by hh)
b on a.hh=b.hh
left join (select hh,sum(sl) as sl from fhdzk where (kdrq between '2009-4-1' and '2009-6-30') group by hh)
c on a.hh=c.hh
left join openrowset('sqloledb','192.168.0.100';'sa';'111','select * from knss2009.dbo.yw_kck')
d on a.hh=d.hh left join openrowset('sqloledb','192.168.0.100';'sa';'111','select * from knss2009.dbo.GLMemberPrice') f on a.hh=f.hh
where (b.sssl>0 or c.sl>0) and fperiod='0' order by a.hh

這是我在公司用到的,我用的是openrowse函數,我感覺這個不錯,代碼有點多,不過原理很簡單

4. 如何創建跨資料庫實例的視圖

步驟如下:

  1. 打開SQL Server可視化編輯視圖,進入資料庫

  2. 進入視圖菜單,右鍵點擊頂層文件夾,新建視圖,不要做任何選擇操作

  3. 在下面輸入SQL語句,格式如下:

  4. 滑鼠再點一下上面菜單,就會出現對應的跨庫數據表。
  5. 把他做一個視圖,存儲在本資料庫,就可以I做跨庫數據分析了。

5. SqlServer如何跨實例訪問資料庫

在我們日常使用SQL Server資料庫時,經常遇到需要在實例Instance01中跨實例訪問Instance02中的數據。例如在做數據遷移時,如下語句:

insert into Instance01.DB01.dbo.Table01

select * from Instance02.DB01.dbo.Table01

普通情況下,這樣做是不允許的,因為SQL Server默認不可以跨實例訪問數據。解決方案是使用存儲過程sp_addlinkedserver進行實例注冊。

sp_addlinkedserver在MSDN中的定義為:

sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproct= ] 'proct_name' ]

[ , [ @provider= ] 'provider_name' ]

[ , [ @datasrc= ] 'data_source' ]

[ , [ @location= ] 'location' ]

[ , [ @provstr= ] 'provider_string' ]

[ , [ @catalog= ] 'catalog' ]

例如:在Instance01實例中,執行如下SQL語句
EXEC sp_addlinkedserver 『Instance02』 //只寫第一個參數即可,默認情況下,注冊的是SQL Server資料庫,其他參數用法詳見MSDN。

如果你的兩個實例在同一個域中,且Instance01與Instance02有共同的域登陸帳號,那麼經過上面的注冊後,前面的insert語句就可以執行了。否則,還需要對注冊的遠程實例進行登陸帳號注冊,在Instance01實例中,執行如下SQL語句

EXEC sp_addlinkedsrvlogin 'InstanceName','true' //使用集成認證訪問遠程實例

或者 EXEC sp_addlinkedsrvlogin 'InstanceName','false','TJVictor,'sa','Password1' //使用Windows認證訪問遠程實例,當用戶以TJVictor用戶登陸Instance01實例訪問Instance02時,默認把TJVictor映射成sa,且密碼為Password1

經過 sp_addlinkedserver實例注冊和sp_addlinkedsrvlogin登陸帳戶注冊後,就可以在Instance01中直接訪問Instance02中的資料庫數據了。

如果還無法訪問,請檢查本機DNS是否可以解析遠程資料庫的實例名。如果無法解析,可以在EXEC sp_addlinkedserver 『Instance02』中把Instance02換為IP,或者在hosts文件中,自己建立相應DNS映射。

6. 怎樣把一個完整的資料庫從一個實例轉到另一個實例上 sql server 2008

先將本機的sqlexpress的資料庫備份到本地,本分文件後綴是【.BAK】。然後將備份文件
復制到mssqlserver的電腦上。附加就可以了。這里有圖片:
http://tech.163.com/07/0123/16/35HKHORT0009158J.html
一、通過企業管理器進行單個資料庫備份。打開SQL SERVER 企業管理器,展開SQL SERVER組LOCAL下的資料庫,右鍵點擊你要備份的資料庫,在彈出的菜單中選擇所有任務下的備份資料庫,彈出備份資料庫對話框:
點擊添加按鈕,填寫備份文件的路徑和文件名,點擊確定添加備份文件,點擊備份對話框上的備份,開始進行備份。
二、還原資料庫備份文件。在企業管理器中對資料庫節點右鍵單擊,選擇所有任務下的附加資料庫,彈出附加資料庫對話框。如下圖:
選擇一個你之前拷貝的數據文件,然後點擊確定即可附加成功(註:如果資料庫已經存在,請刪除資料庫後在對其進行附加)。參考資料:http://tech.163.com/07/0123/16/35HKHORT0009158J.html