當前位置:首頁 » 服務存儲 » sql刪除存儲過程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql刪除存儲過程

發布時間: 2022-01-29 08:56:22

❶ 怎樣在sql server中創建,執行和刪除存儲過程

sqlserver存儲過程的基本操作:

一、創建存儲過程

1、語法格式:

createproc|procerepro_name
[{@參數數據類型}[=默認值][output],
{@參數數據類型}[=默認值][output],
....
]
as
SQL_statements

以上是最基本語法,舉個簡單的例子:

CREATEprocp_test
as
selectretu=1

存儲過程返回一個結果集:1

2、執行存儲過程

EXECUTEProcere_name''--存儲過程如果有參數,後面加參數格式為:@參數名=value,也可直接為參數值value

例子調用結果:

dropprocereprocere_name--在存儲過程中能調用另外一個存儲過程,而不能刪除另外一個存儲過程

❷ plsql刪除的存儲過程

如果有開啟歸檔日誌的話,可以直接回滾;
另外如果是10g以上版本的話,可以使用flashback恢復,具體方法如下:
恢復存儲過程的原理就是利用了oracle里所有的存儲過程的源代碼都是存在dba_source里,而drop某個存儲過程的時候,oracle這里肯定要去dba_source里把相關的源代碼給delete掉,既然是delete,那就可以直接flashback query了,如下:
SELECT *
FROM dba_source
AS OF TIMESTAMP TO_TIMESTAMP ('2015-03-30 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
WHERE owner='' and name =''

❸ 怎樣在Sql server中創建,執行和刪除存儲過程

存儲過程是一類編譯好的程序,在創建時進行編譯,之後需要的時候值需要使用使用調用語句調用EXEC。

儲存過程的分類:
1. 系統存儲過程,存放在MASTER資料庫中,以SP_前綴。
2. 用戶自定義存儲過程。

在SQL SERVER中創建儲存過程語法:
Create proc[ere] procere_name[;number]
[{@parameter data_type}
[varying][=default][output]
][,…n]
[with {recompile|encryption|encrypton,recomption}]
[for enplication]
As
Sql_statement[,…n]
參數:
整個語法中只有兩個參數是必須的:procere_name存儲過程名稱和sql_statement存儲過程內容。
procere_name:存儲過程名稱。
;number:對存儲過程分組,「;數字」表示是一組存儲過程,便於批量操作。
@parameter:參數名,命名必須用@開頭;局部變數以@開頭,全局變數以@@開頭。
data_type:參數類型。
varying:指定作為輸出參數的結果集。
Default:參數的默認值。
Output:表示為輸出參數,返回值給execute/exe。
[with {recompile|encryption|encrypton,recomption}][for enplication]:這個我還不明白。。。
As:指定儲存過程要執行的操作。

執行存儲過程語法:
Exec[ute] 存儲過程名 參數

實驗一下,看看效果:
1.創建一組存儲過程並且執行
create procere procere_a;1
as
select * from student
go
create procere procere_a;2
as
select * from student
go
執行創建效果截圖:

圖1創建一組存儲過程
2.執行語句:
Execute procere_a
效果截圖:

圖2執行存儲過程效果截圖
3.刪除語句:
Drop procere procere_a
效果截圖

圖3刪除一組儲存過程效果截圖

創建帶輸入參數的存儲過程:輸入參數是程序將參數值傳遞給存儲過程。
創建一個帶輸入參數的存儲過程,設置默認值,並且對輸入參數的值進行判斷。
Create procere pro_1
@pro_1_a varchar(20)=null
As
If @pro_1_a is null
Print'請輸入需要查詢的所屬院系:'
else
Select avg(成績) from student where 所屬院系=@pro_1_a
分別執行一下:
1.exec pro_1
效果截圖:

圖4執行不帶輸入參數的語句
2.exec pro_1 『計算機』
效果截圖:

圖5執行帶輸入參數的語句
哈哈,verygood,有進步啊。

創建帶輸出參數的存儲過程:輸出參數是存儲過程將返回值傳遞給程序。
1.輸出函數需要指定output作為標識
2.聲明變數需要使用declare
3.給變數指定值需要使用select
來一個例子:如果一個數大於5,則計算他的階乘。
Create procere pro_2
/*聲明輸入輸出參數*/
@in_x int,
@out_y int output
as
/*聲明標量,並且賦值為1*/
Declare @x int,@y int
Select @x=1,@y=1
/*if語句判斷輸入值是否合法,使用while循環語句計算*/
If @in_x<=5
Print'請輸入大於5的數:'
Else
While @x<=@in_x
Begin
Select @y=@y*@x
Select @x=@x+1
End
Select @out_y=@y
1.執行以上創建代碼

圖6創建帶輸入輸出參數的存儲過程截圖
2.提供參數執行代碼
Declare @out_sum int
Exec pro_2 6,@out_sum output
Select @out_sum as result

圖7提供輸入輸出參數執行存儲過程截圖

創建多條語句的存儲過程:一個存儲過程中可以寫入多條SQL語句,這些語句將被依次執行,可以實現多個功能。

刪除存儲過程delete及判斷對象是否存在exists:
Delete procere procere_name
If exists(select子查詢):如果exists的參數查詢為非空,則exists結果為true,否則為假。
存儲過程作為一個對象將被保存在資料庫的sysobjects表中,可以使用語句判斷這個對象是否存在:select * from sysobjects where name=』procere_name』

幾個系統存儲過程的使用:
Sp_name:重命名對象-- Sp_name object1,object2
Sp_depends:顯示引用對象—sp_depends students
Sp_help:顯示對象信息
Sp_helptext:顯示對象的源代碼

❹ SQL存儲過程怎麼寫!!刪除語句的

create proc 存儲過程名
@id int

as

delete from 表名 where id=@id

GO

exec 存儲過程名 1 --這樣就調用存儲過程從表中刪除了ID記錄為1的記錄

❺ 怎樣在Sql server中創建,執行和刪除存儲過程

  1. 創建存儲過程:CREATE PROCEDURE 存儲過程名 形參表 AS 存儲過程體

  2. 執行存儲過程:EXECUTE 存儲過程名 實參表

  3. 刪除存儲過程:DROP PROCEDURE 存儲過程名

存儲過程(Stored Procere)是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,存儲在資料庫中,經過第一次編譯後再次調用不需要再次編譯,用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。

❻ SQL 如何刪除指定資料庫中的存儲過程

可以通過drop語句進行實現。
sql:drop procere procerename;
解釋:上面的sql語句的意思就是刪除出存儲過程名為procerename的存儲過程。
備註:drop(刪除)的通常是對象,如表(table)、視圖(view),功能(function)等。

❼ 優化級聯刪除的存儲過程SqlServer

這個感覺上, 加一個 DELETE CASCADE 方式 的外鍵約束, 就什麼事情都解決了呀。


--創建測試主表.ID是主鍵.
CREATETABLEtest_main(
idINTNOTNULL,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--創建測試子表.
CREATETABLEtest_sub(
idINTNOTNULL,
main_idINT,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--插入測試主表數據.
INSERTINTOtest_main(id,value)VALUES(1,'ONE');
INSERTINTOtest_main(id,value)VALUES(2,'TWO');

--插入測試子表數據.
INSERTINTOtest_sub(id,main_id,value)VALUES(1,1,'ONEONE');
INSERTINTOtest_sub(id,main_id,value)VALUES(2,2,'TWOTWO');


1>--創建外鍵(使用ONDELETECASCADE選項,刪除主表的時候,同時刪除子表)
2>ALTERTABLEtest_sub
3>ADDCONSTRAINTmain_id_cons
4>FOREIGNKEY(main_id)REFERENCEStest_mainONDELETECASCADE;
5>
6>--測試刪除主表數據.將成功地執行.
7>DELETE
8>TEST_MAIN
9>WHERE
10>ID=1;
11>
12>--測試檢索子表,應該只有一條main_id=2的數據.
13>SELECT
14>*
15>FROM
16>test_sub;
17>
18>go

(1行受影響)
idmain_idvalue
--------------------------------
22TWOTWO

(1行受影響)

❽ 怎樣在Sql server中創建,執行和刪除存儲過程

12345678910-- 創建存儲過程create procere p_create_tableasbegin select getdate()end-- 執行存儲過程exec p_create_table-- 刪除存儲過程drop procere p_create_table

❾ 怎樣在Sql server中創建,執行和刪除存儲過程

創建:
Create
proc[ere]
procere_name[;number]
[{@parameter
data_type}
[varying][=default][output]
][,…n]
[with
{recompile|encryption|encrypton,recomption}]
[for
enplication]
As
Sql_statement[,…n]
參數:
整個語法中只有兩個參數是必須的:procere_name存儲過程名稱和sql_statement存儲過程內容。
procere_name:存儲過程名稱。
;number:對存儲過程分組,「;數字」表示是一組存儲過程,便於批量操作。
@parameter:參數名,命名必須用@開頭;局部變數以@開頭,全局變數以@@開頭。
data_type:參數類型。
varying:指定作為輸出參數的結果集。
Default:參數的默認值。
Output:表示為輸出參數,返回值給execute/exe。
[with
{recompile|encryption|encrypton,recomption}][for
enplication]:這個我還不明白。。。
As:指定儲存過程要執行的操作。
執行:
exec
test_sp
刪除:
drop
proc
test_sp