信息存儲過程
❶ 有哪些最常用的系統存儲過程
sp_databases 列出伺服器上的所有資料庫
sp_helpdb 報告有關指定資料庫或所有資料庫的信息
sp_renamedb 更改資料庫的名稱
sp_tables 返回當前環境下可查詢的對象的列表
sp_columns 返回某個表列的信息
sp_help 查看某個表的所有信息
sp_helpconstraint 查看某個表的約束
sp_helpindex 查看某個表的索引
sp_stored_proceres 列出當前環境中的所有存儲過程
sp_password 添加或修改登錄帳戶的密碼
sp_helptext 顯示默認值、未加密的存儲過程、用戶定義的存儲過程、觸發器或視圖的實際文本
❷ 資料庫原理-存儲過程的類型有哪些分別有什麼特徵。
(3).存儲過程分類<1>.系統存儲過程系統存儲過程(System
Stored
Proceres)主要存儲在master資料庫中,並以sp_為前綴,並且系統存儲過程主要是從系統表中獲取信息,從而為系統管理員管理sql
Server提供支持。<2>.本地存儲過程本地存儲過程(Local
Stored
Proceres)也就是用戶自行創建在用戶資料庫中的存儲過程。事實上一般所說的存儲過程值得就是本地存儲過程。用戶創建的存儲過程是由用戶創建並能完成某一特定功能(如查詢用戶所需的數據信息)的存儲過程。<3>.臨時存儲過程臨時存儲過程(Temporary
Stored
Proceres)可分為以下兩種:A.本地臨時存儲過程如果在創建存儲過程中,以井號(#)作為其名稱的第一個字元,則該存儲過程將成為一個存放在tempdb資料庫中的本地臨時存儲過程(例如,CREATE
PROCEDURE
#book_proc.....)。本地臨時存儲過程只有創建它的連接的用戶才能夠執行它,而且一旦這位用戶斷開與SQL
Server的連接,本地臨時存儲過程就會自動刪除,當然,這位用戶也可以在連接期間用DROP
PROCEDURE命令刪除多創建的本地臨時存儲過程。B.全局臨時存儲過程如果在所創建的存儲過程名稱是以兩個井號(#
#)開始,則該存儲過程將成為一個存儲在tempdb資料庫中的全局臨時存儲過程,如果沒有,便立即將全局臨時存儲過程刪除;如果有,SQL
Server會讓這些執行中的操作繼續進行,但是不允許任何用戶再執行全局臨時存儲過程,等到所有未完成的操作執行完畢後,全局臨時存儲過程就會自動刪除。由於全局臨時存儲過程能夠被所有的連接用戶使用,因此,必須注意其名稱不能和其他連接所採用的名稱相同。<4>.遠程存儲過程遠程存儲過程(Remote
Stored
Proceres)是位於遠程伺服器上的存儲過程,通常可以使用分布式查詢和EXECUTE命令執行一個遠程存儲過程。
❸ 在SQL Server中,用來顯示資料庫信息的系統存儲過程是什麼具體點啦
sp_helpdb [[@dbname=] 'name']
例如:exec sp_helpdb mydb
在 SQL Server 2005 中,許多管理活動和信息活動都可以使用系統存儲過程來執行。系統存儲過程可分為下表所示的幾類。整張對應表請在MSDN中輸入「系統存儲過程」檢索。
Active Directory 存儲過程用於在 Microsoft Windows 2000 Active Directory 中注冊 SQL Server 實例和 SQL Server 資料庫。
(3)信息存儲過程擴展閱讀:
組織資料庫的schema、表和欄位以降低I/O的開銷,將相關項保存在一起,並提前規劃,以便隨著數據量的增長,性能可以保持較高的水平。
設計數據表應盡量使其佔用的空間最小化,表的主鍵應盡可能短。·對於InnoDB表,主鍵所在的列在每個輔助索引條目中都是可復制的,因此如果有很多輔助索引,那麼一個短的主鍵可以節省大量空間。
❹ 修改用戶信息的存儲過程怎麼寫
create proc pro_會員信息_update
(
@用戶賬號 int, --這里少了「,」
@用戶姓名 char (25),
@性別 char(2),
@用戶密碼 char(12),
@用戶E_mail char(30),
@QQ char(20),
@收貨人姓名 char(8),
@城市 text,
@地址 text,
@郵編 char(6),
@聯系電話 char(10)
)
as
update V_會員信息
set 用戶姓名=@用戶姓名, 性別=@性別, 用戶密碼=@用戶密碼, 用戶E_mail=@用戶E_mail, QQ=@QQ, 收貨人姓名=@收貨人姓名, 城市=@城市, 地址=@地址, 郵編=@郵編 and 聯系電話=@聯系電話 --多個欄位update時,中間用「,」分隔,不用「and」
where (用戶賬號=@用戶賬號)
return
❺ 如何編寫存儲過程
//創建存儲過程
CREATE PROCEDURE userData(
IN id INT
)
BEGIN
SELECT * from userdata WHERE userflag = id;
END;
其中IN是傳進去的變數;
drop procere userData;//銷毀這個存儲過程。
call userData(2) //調用存儲過程。
(5)信息存儲過程擴展閱讀:
sql中的存儲過程及相關介紹:
CREATE PROCEDURE [擁有者.]存儲過程名[;程序編號]
[(參數#1,…參數#1024)]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
]
[FOR REPLICATION]
AS 程序行
其中存儲過程名不能超過128個字。每個存儲過程中最多設定1024個參數
(SQL Server 7.0以上版本),參數的使用方法如下:
@參數名數據類型[VARYING] [=內定值] [OUTPUT]。
每個參數名前要有一個「@」符號,每一個存儲過程的參數僅為該程序內部使用,參數的類型除了IMAGE外,其他SQL Server所支持的數據類型都可使用。
[內定值]相當於我們在建立資料庫時設定一個欄位的默認值,這里是為這個參數設定默認值。[OUTPUT]是用來指定該參數是既有輸入又有輸出值的,也就是在調用了這個存儲過程時,如果所指定的參數值是我們需要輸入的參數。
同時也需要在結果中輸出的,則該項必須為OUTPUT,而如果只是做輸出參數用,可以用CURSOR,同時在使用該參數時,必須指定VARYING和OUTPUT這兩個語句。
參考資料來源:網路-儲存過程
❻ 資料庫中的存儲過程怎麼用 啊!!求解.....
存儲過程分為四類;系統存儲過程、用戶定義存儲過程、臨時存儲過程(以「#」或「##」為前綴)、擴展存儲過程。
常用的系統存儲過程的使用:
(1)sp_helpdb
用於查看資料庫名稱和大小。
(2)sp_helptext
用於顯示規則、默認值、未加密的存儲過程、用戶定義函數、觸發器或視圖的文本。
(3)sp_renamedb
用於重命名資料庫。
(4)sp_rename
用於更改當前資料庫中用戶創建對象(如表、列或用戶定義數據類型)的名稱。
(5)sp_helplogins
查看所有資料庫用戶登錄信息。
(6)sp_helpsrvrolemember
用於以查看所有資料庫用戶所屬的角色信息。
就列這些常用的了,其他你自己慢慢找資料看看。
❼ SQL存儲過程如何學習
每一種資料庫系統的存儲過程、觸發器的寫法都會有不同,包括變數的定義格式等,都可能有差異。我沒有用過oracle,只懂informix、SQLServer。最好的辦法是找本書,或者看聯機幫助(不知道oracle有沒有像SQLServer那麼方便的聯機幫助),邊學邊練。只有自己多動手,才能真正掌握。
❽ 編寫顯示部門信息的存儲過程,統計各部門人數,oracle
create or replace package pkg_types
is
type my_cursor is ref cursor ;
end ;
create or replace procere p_sum_dept( ocur out pkg_types.my_cursor)
is
begin
open ocur for
select deptno
count(empno)
from employee
group by deptno;
end ;
/
❾ 存儲過程的基本語法
create procere sp_name
@[參數名] [類型],@[參數名] [類型]
as
begin
.........
end
以上格式還可以簡寫成:
create proc sp_name
@[參數名] [類型],@[參數名] [類型]
as
begin
.........
end
/*註:「sp_name」為需要創建的存儲過程的名字,該名字不可以以阿拉伯數字開頭*/ 1.基本語法:
drop procere sp_name
2.注意事項
(1)不能在一個存儲過程中刪除另一個存儲過程,只能調用另一個存儲過程 1.show procere status
顯示資料庫中所有存儲的存儲過程基本信息,包括所屬資料庫,存儲過程名稱,創建時間等
2.show create procere sp_name
顯示某一個mysql存儲過程的詳細信息
3、exec sp_helptext sp_name
顯示你這個sp_name這個對象創建文本
❿ MS sql如何使用存儲過程
一、存儲過程的概念
T-SQl和C語言一樣 ,是一門結構化的語言。
什麼是存儲過程?
存儲過程是SQL查詢語句與控制流程語句的預編譯集合,並以特定的名稱保存在資料庫中。存儲過程也是資料庫對象
分類:
系統存儲過程: 以sp_或xp_打頭
用戶自定義 :以proc_打頭
存儲過程的優點:
執行速度快 效率高
模塊式編程
減少網路流量
提高安全性
二、系統存儲過程
SQl server 的系統存儲過程保存在master資料庫中,且所有命名的系統存儲過程命名以「Sp_」開頭。在master資料庫中,
系統存儲過程數量如下:
代碼如下 復制代碼
select count([name])as '系統存儲數量' from sysobjects
where [name] like 'sp_%'
EXECUTE 用來表示調用存儲過程,也可以縮寫為EXEC,
調用存儲的語法如下:
EXECUTE 『存儲過程名』 『參數』 ---如果沒有參數則省略參數
常用的系統存儲過程
EXEC sp_databases 列出當前系統中的資料庫
EXEC sp_renamedb 'Northwind','Northwind1' 修改資料庫的名稱(單用戶訪問)
USE stuDB GO EXEC sp_tables 返回某個表列的信息
EXEC sp_columns 查看指定列的信息
EXEC sp_help 查看某個表的所有信息
EXEC sp_helpconstraint '表名' 查看某個表的約束
EXEC sp_helpdb '資料庫名' 或 EXEC sp_helpdb 查看指定資料庫或所有資料庫信息
EXEC sp_helptext '對象名稱' 顯示資料庫對象(存儲過程、觸發器、試圖)的定義文本
EXEC sp_helpindex '表名' 查看指定表的索引信息
EXEC sp_renamedb '原名稱','新名稱' 更改資料庫名稱
EXEC sp_stored_proceres 列出當前環境可用的所有存儲過程
除了系統存儲過程,SQL Server 還提供以Xp_開頭的擴展存儲過程,如可以調用DOS命名的,XP_cmdshell 存儲過程
用法如下:
代碼如下 復制代碼
EXEC Xp_cmdshell DOS 命名 [NO_OUTPUT]
NO_OUTPUT 為可選參數,表示是否輸入存儲過程返回的信息
三、用戶自定義存儲過程
1、語法
代碼如下 復制代碼
create procere 存儲過程名
@參數1名 數據類型 [=默認值] [參數類型(輸入/輸出)]
... ...
@參數n名 數據類型 [=默認值] [參數類型(輸入/輸出)]
as
begin
sql語句
end;
go
參數類型分為輸入參數和輸出參數,默認為輸入參數,使用OUTPUT表示輸出參數。創建存儲過程最好以proc開頭
2、創建不帶參數的存儲過程
代碼如下 復制代碼
--判斷存儲過程是否存在
if object_id('proc_student','procere') is not null
drop procere proc_student
go
create procere proc_student
as
begin
select pcid as '電腦編號',
case pcuse
when 0 then '空閑'
when 1 then '忙碌'
end as '使用狀態' from pc
end;
--調用存儲過程
execute proc_student select * from pc
go
3、創建帶輸入參數的存儲過程
語法:
代碼如下 復制代碼
create procere 存儲過程名
@參數1名 數據類型 [=默認值]
....
@參數2名 數據類型[=默認值]
as
SQl與語句
...
go
--例如
--創建帶輸入參數的存儲過程
代碼如下 復制代碼
if object_id('proc_stu','procere') is not null
drop procere proc_stu
go
create procere proc_stu
@pcuse int
as
begin
select pcid as '電腦編號',
case pcuse
when 0 then '空閑'
when 1 then '忙碌'
end as '使用狀態' from pc where pcuse=@pcuse end;
--調用存儲過程
execute proc_stu @pcuse=1
4、創建帶輸出參數的存儲過程
代碼如下 復制代碼
--創建帶輸出參數的存儲過程
if OBJECT_ID('proc_s','procere') is not null
drop procere proc_s
go
create procere proc_s
@pcid int,
@pcus int output
as
begin
select @pcus=pcuse from pc where pcid=@pcid end;
--調用存儲過程
declare @pcus int execute proc_s 5,@pcus output
四、處理錯誤信息
當存儲過程的語句十分復雜時,可以在存儲過程中加入錯誤語言。SQL Server中可以使用RAISERROR 返回用戶自定義的錯誤信息。
RAISERROR 語法如下:
RAISERROR (自定義的錯誤信息,錯誤的嚴重級別,錯誤狀態)
自定義錯誤信息:表示輸出信息:表示輸出的錯誤提示文本
錯誤的嚴重級別:表示用戶自定義錯誤的嚴重性級別。(0-18極)
錯誤的狀態:表示自定義錯誤的狀態,值的范圍在1-127