當前位置:首頁 » 數據倉庫 » 平移sql資料庫的作業
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

平移sql資料庫的作業

發布時間: 2023-01-30 23:31:50

sql Server資料庫如何將一個庫中的數據導入另一個庫中

按照你提出的問題,我理解你的2個資料庫都在sql
server
2008中,那麼,將一個數據表從一個資料庫導入到另一個資料庫可以按如下步驟操作:
(1)啟動microsoft
sql
server
management
studio程序
(2)按提示操作進入系統
(3)選擇那個建好表的資料庫
(4)點擊滑鼠右鍵,會彈出一個菜單,選擇菜單命令:任務/導出數據
(5)按畫面提示一步步操作,就可以將數據表導出到另一個資料庫
如果你的系統沒有microsoft
sql
server
management
studio程序,則需要用sql
server安裝盤添加安裝之。

⑵ SQL資料庫

聲明
變數 v_emp_name 數據類型為 employee.emp_name;
變數 v_emp_phone 數據類型為employee.emp_phone;
變數 sql_str 數據類型varchar2(256);
begin
sql_str:='select emp_name, emp_phone from employee where emp_id=:eee';
這句話賦個值,下面這句分成幾段看比較好
execute immediate sql_str
執行上面的那句SQL
{into} v_emp_name, v_emp_phone
把查詢的結果放到v_emp_name和v_emp_phone 中
{using} 1 ;
那句SQL中有個:eee,這個變數用1代替即執行select emp_name, emp_phone from employee where emp_id=1
end;

第二個

declare
v_empid employee.empid%type := &v_empid;
①v_emp emp%rowtype;聲明一個可以存儲emp表一行的變數,我是這么理解的- -
begin
② select * into v_emp from employee where empid = v_empid;取出所有符合條件的結果,賦給v_empid
if ③SQL%found then如果有結果,則輸出結果中的empname和empphone值
dbms_output.put_line(v_emp.empname);
dbms_output.put_line(v_emp.empphone);
end if;
Exception此為所有例外情況
when④ no_data_found then這個是沒有記錄
dbms_output.put_line('havnt found record');
when⑤ too_many_rows then這個是row太多
dbms_output.put_line('too many record');
end;

⑶ 有關資料庫的作業·~~SQL語句題

1.select X.商品代號,分類名,數量,品牌 from商品表1 X,商品表2 Y where X.商品代號=Y.商品代號
找出商品庫裡面所有的商品信息

2.select 專業,count(*) as 專業人數 from學生 group by專業 order by專業人數 desc
找出每個專業的專業人數,並且降序排列

3.select課程.課程號,課程.課程名,count(*) as 選課人數 from課程,選課 where課程.課程號一選課.課程號 group by課程.課程號,課程.課程名
找出每門課程的選修人數

4.
SELECT 商品代號 from 商品表1 group by 商品代號 HAVING SUM(數量) > 10

5.
SELECT * FROM 商品表1 WHERE 單價 > (SELECT AVG(單價) FROM 商品表1)

⑷ 怎樣用sqldeveloper把oracle數據移到sqlserver庫中

你把oracle中的數據導出到excel,然後在sql中導入excel就可以了。

⑸ sql Server資料庫如何將一個庫中的數據導入另一個庫中

如果是一個實例下的不同資料庫的話,跟操作同一個庫時是一樣的
只要在要操作的表前面添加資料庫名相關信息就可以了
如:
select * into test1.dbo.to from test2.dbo.from

如果是不同實例的資料庫之間的導入就比較麻煩了,
首先需開啟Distributed Transaction Coordinator服務
然後給你個例子
--以下例子為MSDN上鄒建大哥的例子,給你做下參考
/*--同步兩個資料庫的示例

有數據
srv1.庫名..author有欄位:id,name,phone,
srv2.庫名..author有欄位:id,name,telphone,adress

要求:
srv1.庫名..author增加記錄則srv1.庫名..author記錄增加
srv1.庫名..author的phone欄位更新,則srv1.庫名..author對應欄位telphone更新
--*/

--大致的處理步驟
--1.在 srv1 上創建連接伺服器,以便在 srv1 中操作 srv2,實現同步
exec sp_addlinkedserver 'srv2','','SQLOLEDB','srv2的sql實例名或ip'
exec sp_addlinkedsrvlogin 'srv2','false',null,'用戶名','密碼'
go

--2.在 srv1 和 srv2 這兩台電腦中,啟動 msdtc(分布式事務處理服務),並且設置為自動啟動
我的電腦--控制面板--管理工具--服務--右鍵 Distributed Transaction Coordinator--屬性--啟動--並將啟動類型設置為自動啟動
go

--然後創建一個作業定時調用上面的同步處理存儲過程就行了

企業管理器
--管理
--SQL Server代理
--右鍵作業
--新建作業
--"常規"項中輸入作業名稱
--"步驟"項
--新建
--"步驟名"中輸入步驟名
--"類型"中選擇"Transact-SQL 腳本(TSQL)"
--"資料庫"選擇執行命令的資料庫
--"命令"中輸入要執行的語句: exec p_process
--確定
--"調度"項
--新建調度
--"名稱"中輸入調度名稱
--"調度類型"中選擇你的作業執行安排
--如果選擇"反復出現"
--點"更改"來設置你的時間安排

然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行

設置方法:
我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定.

--3.實現同步處理的方法2,定時同步

--在srv1中創建如下的同步處理存儲過程
create proc p_process
as
--更新修改過的數據
update b set name=i.name,telphone=i.telphone
from srv2.庫名.dbo.author b,author i
where b.id=i.id and
(b.name <> i.name or b.telphone <> i.telphone)

--插入新增的數據
insert srv2.庫名.dbo.author(id,name,telphone)
select id,name,telphone from author i
where not exists(
select * from srv2.庫名.dbo.author where id=i.id)

--刪除已經刪除的數據(如果需要的話)
delete b
from srv2.庫名.dbo.author b
where not exists(
select * from author where id=b.id)
go
--

⑹ sql server 2008資料庫作業步驟怎麼寫

方法/步驟
在電腦開始菜單中選擇「SQL Server Management Studio」雙擊。在出現的界面中點擊「連接」按鈕。

在出現的「 Microsoft SQL Server Management Studio」界面中選擇「管理」下的「維護計劃」右擊維護計劃,點擊「維護計劃向導」,

在出現的「SQL Server維護計劃向導」界面中點擊「下一步」

在出現的界面中把名稱和說明寫上。然後點擊「更改」設頂備份計劃

在出現的「作業計劃屬性」界面中,更改執行時間,也就是多久備份一次。這里該為每天備份。間隔時間更改為「1」更改執行一次時間為0:00:00也就是在每天的0點自動備份數據。

更改好以後,就可以在下面看到「在每天的 0:00:00 執行。將從 2014-5-16 開始使用計劃。」然後點擊「下一步」按鈕

在選擇維護任務界面中選擇要備份的資料庫文件。然後點擊下一步。

在選擇維護任務順序中,可以移動要備份的資料庫文件的順序。然後點擊「下一步」

在定義「備份資料庫完整」界面中,選擇資料庫後面下拉菜單中的資料庫文件。然後點擊「確定」按鈕

在定義「備份資料庫完整」界面里選擇備份路徑。然後點擊「下一步」

在「選擇報告選項」界面中設置好「報告文本文件」的路徑。然後點擊「下一步」

在出現的「完成該向導」界面中會看到設置備份的詳細信息。

這樣資料庫自動備份就成功了。

⑺ 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

⑻ sql server資料庫里的作業有什麼用

你應該先了解什麼是資料庫概念。
SQL SERVER資料庫只是其中的一種,是微軟的產品。

資料庫
資料庫發展階段大致劃分為如下幾個階段:
人工管理階段;
文件系統階段;
資料庫系統階段;
高級資料庫階段。

當人們從不同的角度來描述這一概念時就有不同的定義(當然是描述性的)。例如,稱資料庫是一個「記錄保存系統」(該定義強調了資料庫是若干記錄的集合)。又如稱資料庫是「人們為解決特定的任務,以一定的組織方式存儲在一起的相關的數據的集合」(該定義側重於數據的組織)。更有甚者稱資料庫是「一個數據倉庫」。當然,這種說法雖然形象,但並不嚴謹。
嚴格地說,資料庫是「按照數據結構來組織、存儲和管理數據的倉庫」。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣「倉庫」,並根據管理的需要進行相應的處理。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表20.6.3中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。
J.Martin給資料庫下了一個比較完整的定義:資料庫是存儲在一起的相關數據的集合,這些數據是結構化的,無有害的或不必要的冗餘,並為多種應用服務;數據的存儲獨立於使用它的程序;對資料庫插入新數據,修改和檢索原有數據均能按一種公用的和可控制的方式進行。當某個系統中存在結構上完全分開的若干個資料庫時,則該系統包含一個「資料庫集合」。
· 資料庫的優點
使用資料庫可以帶來許多好處:如減少了數據的冗餘度,從而大大地節省了數據的存儲空間;實現數據資源的充分共享等等。此外,資料庫技術還為用戶提供了非常簡便的使用手段使用戶易於編寫有關資料庫應用程序。特別是近年來推出的微型計算機關系資料庫管理系統dBASELL,操作直觀,使用靈活,編程方便,環境適應廣泛(一般的十六位機,如IBM/PC/XT,國產長城0520等均可運行種軟體),數據處理能力極強。資料庫在我國正得到愈來愈廣泛的應用,必將成為經濟管理的有力工具。
資料庫是通過資料庫管理系統(DBMS-DATA BASE MANAGEMENT SYSTEM)軟體來實現數據的存儲、管理與使用的dBASELL就是一種資料庫管理系統軟體。
· 資料庫結構與資料庫種類
資料庫通常分為層次式資料庫、網路式資料庫和關系式資料庫三種。而不同的資料庫是按不同的數據結構來聯系和組織的。
1.數據結構模型
(1)數據結構
所謂數據結構是指數據的組織形式或數據之間的聯系。如果用D表示數據,用R表示數據對象之間存在的關系集合,則將DS=(D,R)稱為數據結構。例如,設有一個電話號碼簿,它記錄了n個人的名字和相應的電話號碼。為了方便地查找某人的電話號碼,將人名和號碼按字典順序排列,並在名字的後面跟隨著對應的電話號碼。這樣,若要查找某人的電話號碼(假定他的名字的第一個字母是Y),那麼只須查找以Y開頭的那些名字就可以了。該例中,數據的集合D就是人名和電話號碼,它們之間的聯系R就是按字典順序的排列,其相應的數據結構就是DS=(D,R),即一個數組。(2)數據結構種類

數據結構又分為數據的邏輯結構和數據的物理結構。數據的邏輯結構是從邏輯的角度(即數據間的聯系和組織方式)來觀察數據,分析數據,與數據的存儲位置無關。數據的物理結構是指數據在計算機中存放的結構,即數據的邏輯結構在計算機中的實現形式,所以物理結構也被稱為存儲結構。本節只研究數據的邏輯結構,並將反映和實現數據聯系的方法稱為數據模型。
目前,比較流行的數據模型有三種,即按圖論理論建立的層次結構模型和網狀結構模型以及按關系理論建立的關系結構模型。
2.層次、網狀和關系資料庫系統
(1)層次結構模型
層次結構模型實質上是一種有根結點的定向有序樹(在數學中"樹"被定義為一個無回的連通圖)。例如圖20.6.4是一個高等學校的組織結構圖。這個組織結構圖像一棵樹,校部就是樹根(稱為根結點),各系、專業、教師、學生等為枝點(稱為結點),樹根與枝點之間的聯系稱為邊,樹根與邊之比為1:N,即樹根只有一個,樹枝有N個。這種數據結構模型的一般結構見圖20.6.5所示。
圖20.6.4 高等學校的組織結構圖 圖20.6.5 層次結構模型
圖20.6.5中,Ri(i=1,2,…6)代表記錄(即數據的集合),其中R1就是根結點(如果Ri看成是一個家族,則R1就是祖先,它是R2、R3、R4的雙親,而R2、R3、R4互為兄弟),R5、R6也是兄弟,且其雙親為R3。R2、R4、R5、R6又被稱為葉結點(即無子女的結點)。這樣,Ri(i=1,2,…6)就組成了以R1為樹根的一棵樹,這就是一個層次數據結構模型。
按照層次模型建立的資料庫系統稱為層次模型資料庫系統。IMS(Information Manage-mentSystem)是其典型代表。
(2)網狀結構模型
在圖20.6.6中,給出了某醫院醫生、病房和病人之間的聯系。即每個醫生負責治療三個病人,每個病房可住一到四個病人。如果將醫生看成是一個數據集合,病人和病房分別是另外兩個數據集合,那麼醫生、病人和病房的比例關系就是M:N:P(即M個醫生,N個病人,P間病房)。這種數據結構就是網狀數據結構,它的一般結構模型如圖20.6.7所示。在圖中,記錄Ri(i=1,2,8)滿足以下條件:
①可以有一個以上的結點無雙親(如R1、R2、R3)。
②至少有一個結點有多於一個以上的雙親。在"醫生、病人、病房"例中,"醫生集合有若干個結點(M個醫生結點)無"雙親",而"病房"集合有P個結點(即病房),並有一個以上的"雙親"(即病人)。
圖20.6.6 醫生、病房和病人之間的關系
圖20.6.7 網狀結構模型
按照網狀數據結構建立的資料庫系統稱為網狀資料庫系統,其典型代表是DBTG(Data Base Task Group)。用數學方法可將網狀數據結構轉化為層次數據結構。
(3)關系結構模型
關系式數據結構把一些復雜的數據結構歸結為簡單的二元關系(即二維表格形式)。例如某單位的職工關系就是一個二元關系(見表20.6.8)。這個四行六列的表格的每一列稱為一個欄位(即屬性),欄位名相當於標題欄中的標題(屬性名稱);表的每一行是包含了六個屬性(工號、姓名、年齡、性別、職務、工資)的一個六元組,即一個人的記錄。這個表格清晰地反映出該單位職工的基本情況。

表20.6.8 職工基本情況
通常一個m行、n列的二維表格的結構如表20.6.9所示。
表中每一行表示一個記錄值,每一列表示一個屬性(即欄位或數據項)。該表一共有m個記錄。每個記錄包含n個屬性。
作為一個關系的二維表,必須滿足以下條件:
(1)表中每一列必須是基本數據項(即不可再分解)。(2)表中每一列必須具有相同的數據類型(例如字元型或數值型)。(3)表中每一列的名字必須是唯一的。(4)表中不應有內容完全相同的行。(5)行的順序與列的順序不影響表格中所表示的信息的含義。
由關系數據結構組成的資料庫系統被稱為關系資料庫系統。
在關系資料庫中,對數據的操作幾乎全部建立在一個或多個關系表格上,通過對這些關系表格的分類、合並、連接或選取等運算來實現數據的管理。dBASEII就是這類資料庫管理系統的典型代表。對於一個實際的應用問題(如人事管理問題),有時需要多個關系才能實現。用dBASEII建立起來的一個關系稱為一個資料庫(或稱資料庫文件),而把對應多個關系建立起來的多個資料庫稱為資料庫系統。dBASEII的另一個重要功能是通過建立命令文件來實現對資料庫的使用和管理,對於一個資料庫系統相應的命令序列文件,稱為該資料庫的應用系統。因此,可以概括地說,一個關系稱為一個資料庫,若干個資料庫可以構成一個資料庫系統。資料庫系統可以派生出各種不同類型的輔助文件和建立它的應用系統。
· 資料庫的要求與特性
為了使各種類型的資料庫系統能夠充分發揮它們的優越性,必須對資料庫管理系統的使用提出一些明確的要求。
1.建立資料庫文件的要求
(1)盡量減少數據的重復,使數據具有最小的冗餘度。計算機早期應用中的文件管理系統,由於數據文件是用戶各自建立的,幾個用戶即使有許多相同的數據也得放在各自的文件中,因而造成存儲的數據大量重復,浪費存儲空間。資料庫技術正是為了克服這一缺點而出現的,所以在組織數據的存儲時應避免出現冗餘。
(2)提高數據的利用率,使眾多用戶都能共享數據資源。
(3)注意保持數據的完整性。這對某些需要歷史數據來進行預測、決策的部門(如統計局、銀行等)特別重要。
(4)注意同一數據描述方法的一致性,使數據操作不致發生混亂。如一個人的學歷在人事檔案中是大學畢業,而在科技檔案中卻是大學程度,這樣就容易造成混亂。
(5)對於某些需要保密的數據,必須增設保密措施。
(6)數據的查找率高,根據需要數據應能被及時維護。
2.資料庫文件的特徵
無論使用哪一種資料庫管理系統,由它們所建立的資料庫文件都可以看成是具有相同性質的記錄的集合,因而這些資料庫文件都有相同的特性:
(1)文件的記錄格式相同,長度相等。
(2)不同的行是不同的記錄,因而具有不同的內容。
(3)不同的列表示不同的欄位名,同一列中的數據的性質(屬性)相同。
(4)每一行各列的內容是不能分割的,但行的順序和列的順序不影響文件內容的表達。

3.文件的分類
對文件引用最多的是主文件和事物文件。其他的文件分類還包括表文件、備份文件、檔案的輸出文件等。下面將講述這些文件。
(1)主文件。主文件是某特定應用領域的永久性的數據資源。主文件包含那些被定期存取以提供信息和經常更新以反映最新狀態的記錄。典型的主文件有庫存文件、職工主文件和收帳主文件等。
(2)事務文件。事務文件包含著作為一個信息系統的數據活動(事務)的那些記錄。這些事務被分批以構成事務文件。例如,從每周工資卡上錄制下來的數分批存放在一個事務文件上,然後對照工資清單文件進行處理以便列印出工資支票和工資記錄簿。
(3)表文件。表文件是一些表格。之所以單獨建立表文件而不把表設計在程序中是為了便於修改。例如,一個公用事業公司的稅率表或國內稅務局的稅率就可以存儲在表中文件。
(4)備用文件。備用文件是現有生產性文件的一個復製品。一旦生產性文件受到破壞,利用備用文件就可以重新建立生產性文件。
(5)檔案文件。檔案文件不是提供當前處理使用的,而是保存起來作為歷史參照的。例如,國內稅務局(IRS)可能要求檢查某個人最近15年的歷史。實際上,檔案文件恰恰是在給定時間內工作的一個"快照"。
(6)輸出文件。輸出文件包含將要列印在列印機上的、顯在屏幕上的或者繪制在繪圖儀上的那些信息的數值映象。輸出文件可以是"假離線的"(存儲在輔存設備上),當輸出設備可用時才進行實際的輸出。

⑼ 如何在運行 SQL Server 的計算機之間移動資料庫

您可以使用相同的方法從 SQL Server 7.0 或 SQL Server 2000 遷移數據。但是,Microsoft SQL
Server 2005 中的管理工具與 SQL Server 7.0 或 SQL Server 2000 中的管理工具有所不同。您應該使用
SQL Server Management Studio(而不是 SQL Server 企業管理器)以及 SQL Server 導入和導出向導
(DTSWizard.exe)(而不是數據轉換服務導入和導出數據向導)。
備份和還原
在源伺服器上備份用戶資料庫,然後將用戶資料庫還原到目標伺服器上。
在備份過程中時可能有人使用資料庫。如果用戶在備份完成後對資料庫執行
INSERT、UPDATE 或 DELETE
語句,則備份中不會包含這些更改。如果您必須傳輸所有更改,那麼,假如您既執行事務日誌備份又執行完整資料庫備份,您可以以盡可能短的停止時間來傳輸這些更改。
在目標伺服器上還原完整資料庫備份,並指定 WITH NORECOVERY 選項。

注意:為防止對資料庫做進一步的修改,請指導用戶在源伺服器上退出資料庫活動。
執行事務日誌備份,然後使用 WITH RECOVERY 選項將事務日誌備份還原到目標伺服器上。停止時間僅限於事務日誌備份和恢復的時間。有關更多信息,請參閱 SQL Server 聯機叢書的「Transact-SQL 參考」主題中的「還原」子主題。
目標伺服器上的資料庫將與源伺服器上的資料庫大小相同。要減小資料庫的大小,您必須在執行備份前壓縮源資料庫的大小,或者在完成還原後壓縮目標資料庫的大小。有關更多信息,請參閱 SQL Server 聯機叢書的「創建和維護資料庫」標題下的「壓縮資料庫」子主題。
如果您將資料庫還原到的文件位置不同於源資料庫的文件位置,則必須指定 WITH MOVE 選項。例如,在源伺服器上,資料庫位於 D:\Mssql\Data 文件夾中。目標伺服器沒有 D 驅動器,因而您需要將資料庫還原到 C:\Mssql\Data 文件夾。

有關如何將資料庫還原到其他位置的更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
221465

INF:結合使用 WITH MOVE 選項和 RESTORE 語句
304692 INF:使用 BACKUP 和 RESTORE 將 SQL Server 7.0 資料庫移到新的位置
如果您想覆蓋目標伺服器上的一個現有資料庫,則必須指定 WITH REPLACE 選項。有關更多信息,請參閱 SQL Server 聯機叢書的「Transact-SQL 參考」主題中的「還原」子主題。
源伺服器和目標伺服器上的字元集、排序順序和 Unicode 整序可能必須相同,具體取決於您要還原到 SQL Server 的哪種版本。有關更多信息,請參閱本文中的「關於排序規則的說明」一節。
Sp_detach_db 和 Sp_attach_db 存儲過程
要使用 sp_detach_db 和 sp_attach_db 這兩個存儲過程,請按下列步驟操作:
使用 sp_detach_db 存儲過程分離源伺服器上的資料庫。您必須將與資料庫關聯的 .mdf、.ndf 和 .ldf 這三個文件復制到目標伺服器上。參見下表中對文件類型的描述:

文件擴展名
說明

.mdf 主要數據文件
.ndf 輔助數據文件
.ldf 事務日誌文件
使用 sp_attach_db 存儲過程將資料庫附加到目標伺服器上,並指向您在上一步驟中復制到目標伺服器的文件。

有關如何使用這些方法的更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
224071

如何通過使用 SQL Server 中的分離和附加功能將 SQL Server 資料庫移到新位置
分離資料庫後將無法訪問該資料庫,並且復制文件時也無法使用該資料庫。在進行分離的那一時刻資料庫中包含的所有數據都被移動。
在您使用附加或分離方法時,兩個伺服器上的字元集、排序順序和 Unicode 整序都必須相同。有關更多信息,請參閱本文中的「關於排序規則的說明」一節。
關於排序規則的說明
如果您使用備份和還原或附加和分離方法在兩個
SQL Server 7.0 伺服器之間移動資料庫,則兩個伺服器上的字元集、排序順序和 Unicode 整序都必須相同。如果您將資料庫從
SQL Server 7.0 移到 SQL Server 2000,或者在不同的 SQL Server 2000
伺服器之間移動資料庫,則資料庫將保留源資料庫的整序。這意味著,如果運行 SQL Server 2000
的目標伺服器的整序與源資料庫的整序不同,則目標資料庫的整序也將與目標伺服器的 master、model、tempdb 和 msdb 資料庫的整序不同。有關更多信息,請參見 SQL Server 2000 聯機叢書中的「混合整序環境」主題。
導入和導出數據(在 SQL Server 資料庫之間復制對象和數據)
您可以使用數據轉換服務導入和導出數據向導來復制整個資料庫或有選擇地將源資料庫中的對象和數據復制到目標資料庫。
在傳輸過程中,可能有人在使用源資料庫。如果在傳輸過程中有人在使用源資料庫,您可能會看到傳輸過程中出現一些阻滯現象。
在您使用導入和導出數據向導時,源伺服器與目標伺服器的字元集、排序順序和整序不必相同。
因為源資料庫中未使用的空間不會移動,所以目標資料庫不必與源資料庫一樣大。同樣,如果您只移動某些對象,則目標資料庫也不必與源資料庫一樣大。
SQL Server 7.0 數據轉換服務可能無法正確地傳輸大於 64 KB 的文本和圖像數據。但 SQL Server 2000 版本的數據轉換服務不存在此問題。

有關更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
257425

FIX:DTS 對象傳輸不能傳輸大於 64 KB 的 BLOB 數據
第 2 步:如何傳輸登錄和密碼
如果您不將源伺服器中的登錄傳輸到目標伺服器,當前的 SQL Server 用戶就無法登錄到目標伺服器。您可以按照下面的 Microsoft 知識庫文章中的說明來傳輸登錄和密碼:

246133 如何在 SQL Server 實例之間傳輸登錄和密碼
目標伺服器上的登錄的默認資料庫可能與源伺服器上的登錄的默認資料庫不同。您可以使用 sp_defaultdb 存儲過程來更改登錄的默認資料庫。有關更多信息,請參見 SQL Server 聯機叢書中的「Transact-SQL 參考」主題的「sp_defaultdb」子主題。
第 3 步:如何解決孤立用戶
在您向目標伺服器傳輸登錄和密碼後,用戶可能還無法訪問資料庫。登錄與用戶是靠安全識別符 (SID) 關聯在一起的;在您移動資料庫後,如果 SID
不一致,SQL Server 可能會拒絕用戶訪問資料庫。此問題稱為孤立用戶。如果您使用 SQL Server 2000 DTS
傳輸登錄功能來傳輸登錄和密碼,就可能會產生孤立用戶。此外,被允許訪問與源伺服器處於不同域中的目標伺服器的集成登錄帳戶,也會導致出現孤立用戶。
查找孤立用戶。在目標伺服器上打開查詢分析器,然後在您移動的用戶資料庫中運行以下代碼:
exec sp_change_users_login 'Report'

此過程將列出任何未鏈接到一個登錄帳戶的孤立用戶。如果沒有列出用戶,請跳過第 2 步和第 3 步,直接進行第 4 步。
解決孤立用戶問題。如果一個用戶是孤立用戶,資料庫用戶可以成功登錄到伺服器,但卻無權訪問資料庫。如果您嘗試向資料庫授予登錄訪問權,則會因該用戶已經存在而出現下列錯誤消息:
Microsoft SQL-DMO (ODBC SQLState:42000) 錯誤 15023:當前資料庫中已存在用戶或角色 '%s'。
有關如何解決孤立用戶的更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
240872

如何解決在運行 SQL Server 的伺服器之間移動資料庫時的許可權問題

此文章介紹如何將登錄映射到資料庫用戶,以及如何解決標準的 SQL Server 登錄和集成登錄產生的孤立用戶。

274188 PRB:聯機叢書中的「孤立用戶疑難解答」主題不完整

上面的文章介紹了如何使用 sp_change_users_login 存儲過程來逐個糾正孤立用戶。sp_change_users_login 存儲過程僅能解決標準的 SQL Server 登錄帳戶的孤立用戶問題。
如果資料庫所有者 (dbo) 被當作孤立用戶列出,請在用戶資料庫中運行下面的代碼:
exec sp_changedbowner 'sa'

此存儲過程會將資料庫所有者更改為 dbo 並解決這個問題。要將資料庫所有者更改為另一用戶,請使用您想使用的用戶再次運行 sp_changedbowner。有關更多信息,請參見 SQL Server 聯機叢書的「Transact-SQL 參考」主題中的「sp_changedbowner」子主題。
如果您的目標伺服器運行的是 SQL Server 2000 Service Pack 1,則在您執行附加操作或還原操作(或兩種操作都執行)後,企業管理器的用戶文件夾中的列表中可能沒有資料庫所有者用戶。

有關更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
305711

BUG:在企業管理器中沒有顯示 DBO 用戶
如果目標伺服器上不存在映射到源伺服器上的 dbo 的登錄,您在嘗試通過企業管理器更改系統管理員 (sa) 密碼時,可能會收到以下錯誤消息:
錯誤 21776:[SQL-DMO] 名稱 'dbo' 在 Users 集合中沒有找到。如果該名稱是合法名稱,則使用 [] 來分隔名稱的不同部分,然後重試。
有關更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
218172

PRB:在企業管理器中不能更改 SA 密碼
警告:如果您再次還原或附加資料庫,則資料庫用戶可能會再次被孤立,這樣您就必須重復第 3 步操作。
第 4 步:如何移動作業、警報和運算符
第 4 步是可選操作。您可以為源伺服器上的所有作業、警報和運算符生成腳本,然後在目標伺服器上運行腳本。
要移動作業、警報和運算符,請按照下列步驟操作: 您可以用右鍵單擊選擇為所有警報、所有作業或所有運算符生成腳本。
打開 SQL Server 企業管理器,然後展開管理文件夾。
展開 SQL Server 代理,然後右鍵單擊警報、作業或運算符。
單擊所有任務,然後單擊生成 SQL 腳本。對於 SQL Server 7.0,請單擊為所有作業生成腳本、警報或運算符。
您可以將作業、警報和運算符從 SQL Server 7.0 移到 SQL Server 2000,也可以在運行 SQL Server 7.0 和運行 SQL Server 2000 計算機之間移動。
如果在源伺服器上為運算符設置了 SQLMail 通知,則目標伺服器上也必須設置 SQLMail,才能具有相同的功能。

有關更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
263556

INF:如何配置 SQL Mail
第 5 步:如何移動 DTS 包
第 5 步是可選操作。如果 DTS 包在源伺服器上存儲在 SQL Server 中或存儲庫中,您可以在需要時移動這些包。要在伺服器之間移動 DTS 包,請使用下列方法之一。
方法 1
在源伺服器上將 DTS 包保存到一個文件中,然後在目標伺服器上打開 DTS 包文件。
將目標伺服器上的包保存到 SQL Server 或存儲庫中。
注意:您必須用單獨的文件逐個地移動這些包。
方法 2
在 DTS 設計器中打開每個 DTS 包。
在包菜單上,單擊另存為。
指定目標 SQL Server。
注意:在新伺服器上,包可能無法正常運行。您可能必須對包進行更改,更改包中任

⑽ 在SQl中,如何使選中的語句向右平移相同的單位而不用一條條語句的打空格鍵。

優化SQL查詢:如何寫出高性能SQL語句
1、首先要搞明白什麼叫執行計劃?
執行計劃是資料庫根據SQL語句和相關表的統計信息作出的一個查詢方案,這個方案是由查詢優化器自動分析產生欀如一條SQL語句如果用來從一個10萬條記錄的表中查1條記錄,那查詢優化器會選擇「索引查找」方式,如果該表進行了歸檔,當前只剩下5000條記錄了,那查詢優化器就會改變方案,採用 「全表掃描」方式。

可見,執行計劃並不是固定的,它是「個性化的」。產生一個正確的「執行計劃」有兩點很重要:

(1) SQL語句是否清晰地告訴查詢優化器它想干什麼?

(2) 查詢優化器得到的資料庫統計信息是否是最新的、正確的?

2、統一SQL語句的寫法
對於以下兩句SQL語句,程序員認為是相同的,資料庫查詢優化器認為是不同的。

select * from al
select * From al

其實就是大小寫不同,查詢分析器就認為是兩句不同的SQL語句,必須進行兩次解析。生成2個執行計劃。
所以作為程序員,應該保證相同的查詢語句在任何地方都一致,多一個空格都不行!