sql存儲過程注釋
存儲過程就是一組保存在資料庫中的sql語句,在需要的時候可以調用
最簡單的,比如
create procere test as
delete from t_1; ---刪除t_1表的所有記錄
在sql server查詢分析器執行時:
exec test; --執行過程test,刪除了表t_1的所有記錄
當然,沒有人這樣使用存儲過程,存儲過程可以接受參數,處理大量sql語句,並返回結果。
當在編寫軟體的過程中,碰到需要進行復雜的資料庫操作時,可能需要大量的sql語句,這時候可以先在資料庫中創建存儲過程,將sql語句都寫在存儲過程里,可以視情況加入參數,也可以返回處理結果。編寫軟體時,在適當的地方引用並執行這個存儲過程就好了,至於怎麼引用,不同的軟體開發語言有不同的語法。
存儲過程是預編譯的,這樣可以提高執行效率,對於軟體代碼的維護也有好處
⑵ 如何在SQL Server 中添加註釋
首先,要明確一點的是注釋存在sysproperties表中而不是跟創建的表捆綁到一起的
具體使如方法如下:
一、使用SQL Server窗口創建表是會有注釋窗口;
二、使用SQL語句的comment語句,該語句放置在create table()後面,如:
comment on table table_name is 'table_mark'
comment on column table_name."Column" is 'column_mark'
三、調用系統存儲過程sp_addextendedproperty來添加註釋,如:
EXECUTE sp_addextendedproperty N'MS_Description',N'雇員信息',N'user',N'dbo',N'table',N'Employee',NULL,NULL
EXECUTE sp_addextendedproperty N'MS_Description',N'主鍵ID,自動增加',N'user',N'dbo',N'table',N'Employee',N'column',N'EmployeeID'
或者
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'角色ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CharData', @level2type=N'COLUMN',@level2name=N'charid'
GO
⑶ sql server中怎樣用代碼創建存儲過程
打開SQL server management studio,連接到資料庫,展開想要創建的資料庫,找到【可編程性】->【存儲過程】的菜單
⑷ SQL 中存儲過程怎麼使用
一、簡單的儲存過程:
1、創建一個存儲過程
create procere GetUsers()
begin
select * from user;
end;12345
2、調用存儲過程
call GetUsers();12
3、刪除存儲過程
drop procere if exists GetUsers;
二、帶參數的存儲過程
1、MySql 支持 IN (傳遞給存儲過程) , OUT (從存儲過程傳出) 和 INOUT (對存儲過程傳入和傳出) 類型的參數 , 存儲過程的代碼位於 BEGIN 和 END 語句內 , 它們是一系列 SQL 語句 , 用來檢索值 , 然後保存到相應的變數 (通過指定INTO關鍵字) ;
2、下面的存儲過程接受三個參數 , 分別用於獲取用戶表的最小 , 平均 , 最大分數 , 每個參數必須具有指定的類型 , 這里使用十進制值(decimal(8,2)) , 關鍵字 OUT 指出相應的參數用來從存儲過程傳出
create procere GetScores(
out minScore decimal(8,2),
out avgScore decimal(8,2),
out maxScore decimal(8,2)
)
begin
select min(score) into minScore from user;
select avg(score) into avgScore from user;
select max(score) into maxScore from user;
end;1234567891011
3、調用此存儲過程 , 必須指定3個變數名(所有 MySql 變數都必須以@開始) , 如下所示 :
call GetScores(@minScore, @avgScore, @maxScore);12
4、該調用並沒有任何輸出 , 只是把調用的結果賦給了調用時傳入的變數@minScore, @avgScore, @maxScore, 然後即可調用顯示該變數的值 :
select @minScore, @avgScore, @maxScore;
5、使用 IN 參數 , 輸入一個用戶 id , 返回該用戶的名字 :
create procere GetNameByID(
in userID int,
out userName varchar(200)
)
begin
select name from user
where id = userID
into userName;
end;12345678910
6、調用存儲過程 :
call GetNameByID(1, @userName);
select @userName;123
⑸ 在SQL中存儲過程的一般語法是什麼
1、 創建語法
createproc|procerepro_name
[{@參數數據類型}[=默認值][output],
{@參數數據類型}[=默認值][output],
....
]
as
SQL_statements
2、 創建不帶參數存儲過程
--創建存儲過程
if(exists(select*fromsys.objectswherename='proc_get_student'))
dropprocproc_get_student
go
createprocproc_get_student
as
select*fromstudent;
--調用、執行存儲過程
execproc_get_student;
3、 修改存儲過程
--修改存儲過程
alterprocproc_get_student
as
select*fromstudent;
4、 帶參存儲過程
--帶參存儲過程
if(object_id('proc_find_stu','P')isnotnull)
dropprocproc_find_stu
go
createprocproc_find_stu(@startIdint,@endIdint)
as
select*fromstudentwhereidbetween@startIdand@endId
go
execproc_find_stu2,4;
5、 帶通配符參數存儲過程
--帶通配符參數存儲過程
if(object_id('proc_findStudentByName','P')isnotnull)
dropprocproc_findStudentByName
go
createprocproc_findStudentByName(@namevarchar(20)='%j%',@nextNamevarchar(20)='%')
as
select*fromstudentwherenamelike@nameandnamelike@nextName;
go
execproc_findStudentByName;execproc_findStudentByName'%o%','t%';
(5)sql存儲過程注釋擴展閱讀:
SQL存儲過程優點:
1、重復使用。存儲過程可以重復使用,從而可以減少資料庫開發人員的工作量。
2、減少網路流量。存儲過程位於伺服器上,調用的時候只需要傳遞存儲過程的名稱以及參數就可以了,因此降低了網路傳輸的數據量。
3、安全性。參數化的存儲過程可以防止SQL注入式攻擊,而且可以將Grant、Deny以及Revoke許可權應用於存儲過程。