什麼是存儲過程: 存儲過程可以說是一個記錄集吧,它是由一些T-SQL語句組成的代碼塊,這些T-SQL語句代碼像一個方法一樣實現一些功能(對單表或多表的增刪改查),然後再給這個代碼塊取一個名字,在用到這個功能的時候調用他就行了。
存儲過程的好處:
1.由於資料庫執行動作時,是先編譯後執行的。然而存儲過程是一個編譯過的代碼塊,所以執行效率要比T-SQL語句高。
2.一個存儲過程在程序在網路中交互時可以替代大堆的T-SQL語句,所以也能降低網路的通信量,提高通信速率。
3.通過存儲過程能夠使沒有許可權的用戶在控制之下間接地存取資料庫,從而確保數據的安全。
小結:總之存儲過程是好東西,在做項目時屬於必備利器,下面介紹存儲過程的基本語法。
存儲過程的語法和參數講解
存儲過程的一些基本語法:
創建存儲過程的參數:
1.procere_name:存儲過程的名稱,在前面加#為局部臨時存儲過程,加##為全局臨時存儲過程。
2.; number:是可選的整數,用來對同名模鎮派的過程分組,以便用一條 DROP PROCEDURE 語句即可將同組的過程一起除去。例如,名為 orders 的應用程序使用的過程可以命名為 orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc 語句將除去整個組。如果名稱中包含定界標識符,則數字不應包含在標識符中,只應在 procere_name 前後使用適當的定界符。
3.@parameter:
存儲過程的參數。可以有一個或多個。用戶必須在執行過程時提供每個所聲明參數的值(除非定義了該參數的默認值)。存儲過程最多可以有2.100 個參數。使用 @ 符號作為第一個字元來指定參數名稱。參數名稱必須符合標識符的規則旅缺。每個過程的參數僅用於該過程本身;
相同的參數名稱可以用在其它過程中。默認情況下,參數只能代替常量,而不能用於代替表名、列名或其它資料庫對象的名稱。有關更多信息,請參見 EXECUTE。
4.data_type:參數的數據類型。所有數據類型(包括 text、ntext 和 image)均可以用作存儲過程的參數。不過,cursor 數據類型只能用於 OUTPUT 參數。如果指定的數據類型為 cursor,也必須同時指定 VARYING 和 OUTPUT 關鍵字。有關 SQL Server 提供的數據類型旦賀及其語法的更多信息,請參見數據類型。說明 對於可以是 cursor 數據類型的輸出參數,沒有最大數目的限制。
5.VARYING:指定作為輸出參數支持的結果集(由存儲過程動態構造,內容可以變化)。僅適用於游標參數。
6.default:參數的默認值。如果定義了默認值,不必指定該參數的值即可執行過程。默認值必須是常量或 NULL。如果過程將對該參數使用 LIKE 關鍵字,那麼默認值中可以包含通配符(%、_、[] 和 [^])。
7.OUTPUT:表明參數是返回參數。該選項的值可以返回給 EXEC[UTE]。使用 OUTPUT 參數可將信息返回給調用過程。Text、ntext 和 image 參數可用作 OUTPUT 參數。使用 OUTPUT 關鍵字的輸出參數可以是游標佔位符。
8.RECOMPILE:表明 SQL Server 不會緩存該過程的計劃,該過程將在運行時重新編譯。在使用非典型值或臨時值而不希望覆蓋緩存在內存中的執行計劃時,請使用 RECOMPILE 選項。
9.ENCRYPTION:表示 SQL Server 加密 syscomments 表中包含 CREATE PROCEDURE 語句文本的條目。使用 ENCRYPTION 可防止將過程作為 SQL Server 復制的一部分發布。
說明 在升級過程中,SQL Server 利用存儲在 syscomments 中的加密注釋來重新創建加密過程。
10.FOR REPLICATION:指定不能在訂閱伺服器上執行為復制創建的存儲過程。.使用 FOR REPLICATION 選項創建的存儲過程可用作存儲過程篩選,且只能在復制過程中執行。本選項不能和 WITH RECOMPILE 選項一起使用。
11.AS:指定過程要執行的操作。
12.sql_statement:過程中要包含的任意數目和類型的 Transact-SQL 語句。但有一些限制。
小結:看過這些基本語法後,下面我就根據語法創建各式的存儲過程。
創建存儲過程
針對上面的表,我使用存儲過程對它做一些操作:
1.只返回單一記錄集的存儲過程
結果:相當於運行 select * fromUserAccount這行代碼,結果為整個表的數據。
2.沒有輸入輸出的存儲過程
結果:相當於運行insertintoUserAccount (UserName,[PassWord],RegisterTime,RegisterIP)values(9,9,'2013-01-02',9)這行代碼。
3.有返回值的存儲過程
解釋:這里的@@rowcount為執行存儲過程影響的行數,執行的結果是不僅插入了一條數據,還返回了一個值即 return value =1 ,這個可以在程序中獲取,稍後在c#調用存儲過程中會有說到。
4.有輸入參數和輸出參數的存儲過程
解釋:@UserName為輸入參數,@UserID為輸出參數。運行結果為@userID為COOUT(*)即 =1。
5. 同時具有返回值、輸入參數、輸出參數的存儲過程
結果:@userID為COOUT(*)即 =1,Retun Value=1。
6.同時返回參數和記錄集的存儲過程
結果:返回執行select*fromUserAccount 這句代碼的結果集,同時@userID為COOUT(*)即 =1,Retun Value=9。
7.返回多個記錄集的存儲過程
結果:返回兩個結果集,一個為select*fromUserAccount,另一個為select*fromUserAccountwhereUserID>5 。
小結:上面我們創建了各式的存儲過程。
㈡ SQLServer資料庫實例教程的內容簡介
本書內容簡明扼要,對每一項重要內容都給出了一個圖文並茂的任務並加上「特別提醒」,充分考慮了SQL Server 2005資料庫管理系統初學者的實際需要,保證初學者從知識的起點開始,逐步掌握SQL Server資料庫管理和開發的基礎知識。本書以「HcitPos管理系統」為例,以任務的形式介紹SQL Server 2005的管理和開發技術,適合「理論實踐一體化」的教學方法,將知識講解與技能訓練有機結合,融「教、學、做」於一體。每章節配備了課堂練習題、選擇題與課外拓展題,附錄給出了實驗練習題,以幫助讀者檢驗對每章的學習效果,還給出兩個階段性項目實戰,可以幫助讀者全面檢查對資料庫基礎和高級應用的學習效果。
本書可作為高職高專院校學生和教師學習SQL Server資料庫管理系統的參考書和教學用書,也適合SQL Server資料庫管理系統的初、中級讀者使用。
㈢ SQLServer資料庫實例教程的目錄
第1章 「HcitPos管理系統」教學案例功能簡介
第2章 資料庫設計
第3章 SQL Server 2005資料庫基本操作
第4章 資料庫表操作
第5章 查詢操作
第6章 視圖與索引操作
第7章 T-SQL編程、游標和事務操作
第8章 存儲過程與觸發器操作
第9章 資料庫備份與安全管理操作
㈣ sqlserver怎麼新建資料庫實例(sql2008如何新建一個資料庫)
1,按正常的安裝SQLServer2005方式進行安裝,直到選擇安裝組件時選擇你所需要安裝的的組件,此處我只選擇SQLServerdatabaseService。
每個實例要求擁有虧渣自己專用的可執行文件、注冊鍵和文件夾。因此如果你需求使用到其它的組件,你也需要在此處進行選擇,但有一個組件是大家共同的:工作站組件、聯機叢書和開發工具。
2.為了讓每個實例擁有自己的文件夾,請點擊高級—游覽--進行新實例安裝文件路徑的選擇。
3.按規劃要求起一個讓人一看就知道該實例用途的實例名。第一個實例名通常是作為默認實例,其實例名與主機名相同。由於我這是在測試,因此實例名我起TEST。
4,根據規劃要求銷罩悄:為每個實例建立自己相應的管理員帳號。由於這個帳號和密碼已經寫入到SQL安裝文件中,因此不建議在資料庫安裝完成後去修改這個帳號的密碼。在SQLServer2005資料庫群集中的安裝帳號和密碼也是一樣,不建議修改。
5.從安全形度考慮,Windows身份驗證模式比混合模式要安全得多,因此建議在不需要考慮與以前版本的兼容性時,建議使用windows身份驗證模式。
6.後面的步驟與正常安裝一樣,直悶租到安裝完成。
㈤ SQL Server 2005實例教程的內容提要
本書是國家人力資源和社會保障部、國家工業和信息化部有關信息專業技術人才知識更新工程(「653工程」)的指定教材,同時也是全國高等職業教育「十一五」計算機類專業規劃教材。
本書共由4篇15章組成:第1篇為基礎篇,講述了資料庫的發展、概念、模型、關系資料庫的相關概念、SQL語言、主流資料庫及比較;第2篇為入門篇,講述了SQL Server 2005的安裝、特性、主要組件,並通過一個「停車場」資料庫實例介紹李旅緩了資料庫從創建到備份恢復的基本流程;第3篇為提高篇,通過實例講解了資料庫對象包括資料庫、數據表、視圖、存儲過程、觸發器等的規劃、設計、創建和管理的過程和方法,並介紹了通過ASP NET開發鎮陸SQL Server 2005資料庫應用的基本方法和技術;第4篇為高級篇,講述了資料庫的配置和管理、資料庫的安全性、數據的導入導出、資料庫復制技術、資料庫性能優化和調整等內容。
本書內容豐富,結構清晰,通過完整的實例對主流資料庫系統SQL Server 2005的概念和技術進行了透徹的講述。本書不僅適用於高哪模職高專教學需要,而且也適合資料庫及SQL Server初學者的入門書籍和中級讀者的提高教程。
㈥ sql server 2008怎麼安裝實例
1、首先,在安裝文件setup.exe上,單擊滑鼠右鍵選擇"以管理員的身份運行",
<img
alt="Win7
系統上安裝SQL
Server
2008一步一步圖解教程_downcc綠色資源網"
src="/upload/tech/UploadPic/2012-8/2012828143624635.jpg"/>
2、首先單擊安裝光碟中的setup.exe安裝文件,打開如下所示的"SQL
Server安裝中心"對話框:
3、選擇左邊的安裝選項,單擊右邊的"全新SQL
Server獨立安裝或向現有安裝添加功能"選項,
4、在打開的"SQL
Server
2008安裝程序"對話框中,出現"安裝程序支持規則"選項,可以看到,一些檢查已經通過了,單擊確定按鈕,進入到下一步,
5、單擊確定按鈕之後,出現輸入產品密鑰的提示,這里我使用的密鑰是企業版的:"JD8Y6-HQG69-P9H84-XDTPG-34MBB",單擊下一步按鈕繼續安裝,
6、在接下來的許可條款頁面中選擇"我接受許可條款"選項,單擊下一步按鈕繼續安裝
7、在出現的"安裝程序支持文件"頁面中,單擊安裝按鈕繼續
8、安裝程序支持文件的過程
9、之後出現了"安裝程序支持規則"頁面,只有符合規則才能繼續安裝,單擊下一步按鈕繼續安裝
10、在"功能選擇"頁面中,單擊全選按鈕,並設置共享的功能目錄,單擊下一步繼續
11、在"實例配置"頁面中,選擇默認實例,並設置是實例的根目錄,單擊下一步按鈕繼續
12、在"磁碟空間要求"頁面中,顯示了安裝軟體所需的空間,單擊下一步繼續,
13、在"伺服器配置"頁面中,根據需要進行設置,單擊下一步按鈕繼續安裝
14、在"資料庫引擎配置"頁面中,設置身份驗證模式為混合模式,輸入資料庫管理員的密碼,即sa用戶的密碼,並添加當前用戶,單擊下一步按鈕繼續安裝
15、在"Analysis
Services配置"頁面中,添加當前用戶,單擊下一步按鈕
16、在"Reporting
Services配置"頁面中,按照默認的設置,單擊下一步按鈕,
17、在"錯誤和使用情況報告"頁面中,根據自己的需要進行選擇,單擊下一步按鈕繼續安裝,
18、在"安裝規則"頁面中,如果全部通過,單擊下一步按鈕繼續
19、在"准備安裝"頁面中,看到了要安裝的功能選項,單擊下一步繼續安裝
20、在"安裝進度"頁面中,可以看到正在安裝SQL
Server
2008
21、經過漫長的等待,SQL
Server
2008安裝過程完成,現在沒有錯誤,我的第一次錯誤是在上邊的那個步驟出現的,單擊下一步按鈕繼續
22、在"完成"頁面中,可以看到"SQL
Server
2008安裝已成功完成"的提示,單擊關閉按鈕結束安裝
23、啟動SQL
Server
2008,選擇開始菜單中的Microsoft
SQL
Server
2008下的SQL
Server配置管理器,啟動SQL
Server服務
24、最後啟動微軟為我們提供的集成工具,按照上圖中的選擇SQL
Server
Manager
Studio選項打開,輸入用戶名和密碼進入
㈦ 一些有用的sql語句實例
1Examples
=======================================
select id,age,Fullname from tableOne a
where a.id!=(select max(id) from tableOne b where a.age=b.age and a.FullName=b.FullName)
=========================================
delete from dbo.Schele where
RoomID=29 and StartTime-08-08' and EndTime-09-01' and Remark like 'preset' and UserID=107
and ((ScheleID=3177 and ScheleID=3202 )
or (ScheleID=3229 and ScheleID=3254)
or (ScheleID=3307 and ScheleID=3332)
=========================================
delete tableOne
where tableOne.id!=(select max(id) from tableOne b where tableOne.age=b.age and tableOne.FullName=b.FullName);
==========================================
DataClient12/23/2005 5:03:38 PM
select top 5
DOC_MAIN.CURRENT_VERSION_NO as Version, DOC_MAIN.MODIFY_DATE as ModifyDT, DOC_MAIN.SUMMARY as Summary, DOC_MAIN.AUTHOR_EMPLOYEE_NAME as AuthorName, DOC_MAIN.TITLE as Title, DOC_MAIN.DOCUMENT_ID as DocumentID,Attribute.ATTRIBUTE_ID as AttributeId, Attribute.CATALOG_ID as CatalogId,DOC_STATISTIC.VISITE_TIMES as VisiteTimes, DOC_STATISTIC.DOCUMENT_ID as DocumentID2
from DOC_MAIN DOC_MAIN
Inner join CATALOG_SELF_ATTRIBUTE Attribute on DOC_MAIN.CATALOG_ID=Attribute.CATALOG_ID
Left join DOC_STATISTIC DOC_STATISTIC on DOC_MAIN.DOCUMENT_ID=DOC_STATISTIC.DOCUMENT_ID
where (DOC_MAIN.AUTHOR_EMPLOYEE_ID = 1) and (Attribute.ATTRIBUTE_ID = 11)
order by VisiteTimes DESC
====================================
select top 1 DOCUMENT_ID,EMPLOYEE_NAME,COMMENT_DATE,COMMENT_VALUE
from dbo.DOC_COMMENT
where DOCUMENT_ID=19 and COMMENT_DATE = (select max(COMMENT_DATE) from DOC_COMMENT where DOCUMENT_ID=19)
====================================
select TITLE, (select top 1 EMPLOYEE_NAME
from dbo.DOC_COMMENT where DOCUMENT_ID=19) Commentman,
(select top 1 COMMENT_DATE
from dbo.DOC_COMMENT where DOCUMENT_ID=19) COMMENT_DATE
from DOC_MAIN where DOCUMENT_ID=19
======================================
alter view ExpertDocTopComment
as
selectDOCUMENT_ID, max(ORDER_NUMBER ) as lastednum
from dbo.DOC_COMMENT
group by DOCUMENT_ID
go
alter view ExpertDocView
as
select TITLE, a.AUTHOR_EMPLOYEE_ID , c.EMPLOYEE_NAME , c.COMMENT_DATE
from dbo.DOC_MAINa
left join
ExpertDocTopComment b
on
a.DOCUMENT_ID = b.DOCUMENT_ID
inner join
DOC_COMMENT c
on
b.DOCUMENT_ID = c.DOCUMENT_ID and
b.lastednum = c. ORDER_NUMBER
======================================
select a.Id ,a.WindowsUsername ,
0 , 1 ,
a.Email ,
case b.EnFirstName when null then a.Username else b.EnFirstName end,
case b.EnLastName when null then a.Username else b.EnLastName end
from UUMS_KM.dbo.UUMS_User a
left join
UUMS_KM.dbo.HR_Employee b
on
a. HR_EmployeeId = b.id
=====================================
列出上傳文檔最多的五個人的ID
select AUTHOR_EMPLOYEE_ID,count(AUTHOR_EMPLOYEE_ID)
from dbo.DOC_MAIN
group by AUTHOR_EMPLOYEE_ID
order by count(AUTHOR_EMPLOYEE_ID)
27192
69
1230
1116
列出上傳文檔最多的五個人的信息
select distinct AUTHOR_EMPLOYEE_ID ,AUTHOR_EMPLOYEE_NAME
from dbo.DOC_MAIN
where AUTHOR_EMPLOYEE_ID
in (select top 5 AUTHOR_EMPLOYEE_ID
from dbo.DOC_MAIN
group by AUTHOR_EMPLOYEE_ID
order by count(AUTHOR_EMPLOYEE_ID))
=================================
㈧ 如何在db2命令行運行sql必知必會例子
db2 => connect to dbName user xxx using password
db2 => sql語句
如果要執行一個sql腳本文件:
db2 => quit
c:\> db2 -tvf sql文件名
db2 -td@ -f filename
@是語句結束符。
E:\>db2 ? options
db2 [option ...] [db2-command | sql-statement |
[? [phrase | message | sqlstate | class-code]]]
option:-a、-c、-e{c|s}、-finfile、-lhistfile、-n、-o、-p、-rreport、-s、-t、
-td;、-v、-w、-x 和 -zoutputfile。
選項 描述 預設設置
------ ---------------------------------------- ---------------
-a 顯示 SQLCA OFF
-c 自動落實 ON
-e 顯示 SQLCODE/SQLSTATE OFF
-f 讀取輸入文件 OFF
-l 將命令記錄到歷史文件中 OFF
-n 除去換行字元 OFF
-o 顯示輸出 ON
-p 顯示 db2 互動式提示符 ON
-r 將輸出報告保存到文件 OFF
-s 在命令出錯時停止執行 OFF
-t 設置語句終止字元 OFF
-v 回送當前命令 OFF
-w 顯示 FETCH/SELECT 警告消息 ON
-x 不列印列標題 OFF
-z 將所有輸出保存到輸出文件 OFF
注意:
使用 DB2OPTIONS 環境變數定製選項預設值。
緊跟選項字母後的減號(-)使該選項關閉。
使用 UPDATE COMMAND OPTIONS 更改選項設置(以互動式或
文件輸入方式)。
只能提供nt環境下編寫腳本的例子給你以供參考:
腳本樣例:
db2 connect to yourdb user yourname using yourpassword
db2 insert into newuser(username,password,email) values('Amy','1234','[email protected]')
db2 insert into newuser(username,password,email) values('Judy','1234','[email protected]')
db2 commit
db2 disconnect yourdb
運行腳本: 運行db2cmd X:\XXX.bat
以下摘自本論壇的FAQ可參考:
"
在命令窗口中運行DB2腳本,可用 db2 -svtf 腳本文件名 來實現。
例如,腳本文件名為sample.sql,運行:db2 -svtf sample.sql
參數中:
s 代表遇到錯誤時中止運行腳本
v 代表輸出結果到屏幕
t 指以;號作為每行的分隔符
f 指後面需跟腳本文件名 "---此摘錄版權歸斑竹非本人所有
具體在AS400如何編寫腳本非常遺憾.
db2 -x select SERIALNO from tabname where clause
C:>db2 attach to db2164 user ccp
輸入 ccp 的當前密碼:
實例連接信息
實例伺服器 = DB2/NT 8.2.0
授權標識 = CCP
本地實例別名 = DB2164
C:>db2 connect to dw164 user ccp
輸入 ccp 的當前密碼:
資料庫連接信息
資料庫伺服器 = DB2/NT 8.2.0
SQL 授權標識 = CCP
本地資料庫別名 = DW164
C:>db2 select * from CCP_STS1 fetch first 2 rows only with ur
CUST_ID NOW_PRED_S LOAD_TIME
-------------------- -------------------- --------------------------
3094736. ZFS 2008-05-07-10.02.00.453000
3145886. ZFS 2008-05-07-10.02.00.453000
2 條記錄已選擇。
C:>db2 list command options
命令行處理器選項設置
後端進程等待時間(秒) (DB2BQTIME) = 1
連接至後端的重試次數 (DB2BQTRY) = 60
請求隊列等待時間(秒) (DB2RQTIME) = 5
輸入隊列等待時間(秒) (DB2IQTIME) = 5
命令選項 (DB2OPTIONS) = +m
選項 描述 當前設置
------ ---------------------------------------- ---------------
-a 顯示 SQLCA OFF
-c 自動落實 ON
-d 檢索並顯示 XML 聲明 OFF
-e 顯示 SQLCODE/SQLSTATE OFF
-f 讀取輸入文件 OFF
-i 顯示 XML 數據並帶有縮進 OFF
-l 將命令記錄到歷史記錄文件中 OFF
-m 顯示受影響的行數 OFF
-n 除去換行字元 OFF
-o 顯示輸出 ON
-p 顯示互動式輸入提示符 ON
-q 保留空格和換行符 OFF
-r 將輸出保存到報告文件 OFF
-s 在命令出錯時停止執行 OFF
-t 設置語句終止字元 OFF
-v 回傳當前命令 OFF
-w 顯示 FETCH/SELECT 警告消息 ON
-x 不列印列標題 OFF
-z 將所有輸出保存到輸出文件 OFF
C:>db2set DB2OPTIONS=-x
C:>db2 select * from CCP_STS1 fetch first 2 rows only with ur
4654908. ZFS 2008-05-07-10.02.00.453000
3716687. ZFS 2008-05-07-10.02.00.453000