時間:2023-03-15來源:系統城裝機大師作者:佚名
最近工作中需要寫SQLserver的存儲過程,第一次使用,簡單記錄下,以防遺忘。
在SQLserver可視化工具中編寫,我的工具如下圖:
首先點擊你的數據庫,找到可編程性,在可編程性里面右擊存儲過程-->點擊新建存儲過程
然后開始寫你的存儲過程SQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
--寫法(無參): USE [Test] --[Test]使用的數據來源(數據庫名) GO /****** Object: StoredProcedure [dbo].[PR_ShowData] Script Date : 2022/11/12 13:58:38 ******/ --[dbo].[PR_ShowData]新建存儲過程,[dbo].[PR_ShowData]是存儲過程名 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[PR_ShowData] --修改存儲過程,[dbo].[PR_ShowData]是存儲過程名 AS BEGIN declare @FLAG VARCHAR (50) --如果需要變量的話,則是用此方法定義變量,類型根據需要自定義 --將D表中條件為P01=0的P02值查出來賦值給變量@FLAG SELECT @FLAG=P02 from D where P01 = '0' --判斷變量值,執行判斷條件里面的SQL語句,這里if里面必須要寫開頭的begin與結束的end if (@FLAG=0) --如果變量值為0,就刪除A,B,C三個表里的數據,否則就插入數據 begin delete A delete B delete C end insert into A (字段A,字段B,.....) VALUES (數據1,數據2,.....) insert into B (字段A,字段B,.....) VALUES (數據1,數據2,.....) insert into C (字段A,字段B,.....) VALUES (數據1,數據2,.....) END |
如上就是一個簡單的存儲過程了,完成后點擊執行就行了。以上可以簡單理解為,用到的數據庫是[Test]數據庫,新建的存儲過程是[dbo].[PR_ShowData],因為我的業務是需要根據D表的條件更新A,B,C三個表的數據的,所以判斷了結果后根據條件先把A,B,C三個表的原有數據刪除或者保留,然后把需要的數據再插入到A,B,C三個表中。
剛開始時在這里踩了一個坑,插入時一直報錯
以A表舉例:
如果插入的數據只是一段固定的值,則字段和數據之間要用VALUES,格式insert into A (字段A,字段B,.....)VALUES(數據1,數據2,.....);
如果是從其他表查出來的數據結果,則不使用VALUES,直接insert into A (字段A,字段B,.....)(select * from 數據來源表名);只要字段對應即可。
ALTER PROCEDURE 相對于Create PROCEDURE優點:
(1)ALTER PROC 期望找到現存的存儲過程,而CERATE不是。
(2)ALTER PROC 保留了已經建立的存儲過程的任何權限。它在系統對象中保留了相同的對象ID并允許保留依賴關系。
例如,如果過程A調用過程B,并刪除和重新創建了過程B,那么就不能再看到這兩者之間的依賴關系。如果使用ALTER,則依賴關系依然存在。
(3) ALTER PROC 在其他對象上保留了任何依賴關系的信息,這些對象可以調用修改的存儲過程。
編寫執行的腳本,比如多久執行一次存儲過程等
找到SQL Server代理,右擊作業-->新建作業
1.常規(名稱自己定義,確定即可)
2.點擊步驟-->點擊最下面的新建
2.1)步驟名稱(一般是exec 存儲過程名,我的是exec [dbo].[PR_ShowData])
2.2)類型選擇Transact-SQL 腳本(T-SQL)
2.3)數據庫選擇你的數據庫
2.4)命令exec PR_ShowData,最后點擊確定即可。
3.點擊計劃-->新建
3.1)名稱寫2.4)中的,我的是exec PR_ShowData
3.2)計劃類型根據自己的業務需求,我是重復執行,后面的已啟用打勾
3.3)頻率-->執行(我選擇的是每天)-->執行間隔(我選的1天)
3.4)每天頻率我選擇的是執行間隔十分鐘執行一次,開始時間和結束時間根據自己需要選擇時間段
3.5)持續時間(開始和結束時間自己選擇,如果要一直執行就選擇無結束日期)
3.6)摘要-->說明(會把你設置的信息總結,可以看是不是復合自己的要求)
3.7)最后點擊確定即可
我這里計劃列表顯示的有是因為我已經建過了。
如上便實現了SQLserver存儲過程簡單寫法與設置定時執行存儲過程方法了
總結
到此這篇關于SQLserver存儲過程寫法與設置定時執行存儲過程的文章就介紹到這了,
2023-03-11
sql語句將數據庫一條數據通過分隔符切割成多列方法實例2023-03-06
MySQL中的常用樹形結構設計總結2023-03-06
Windows故障轉移群集 和 SQLServer AlwaysOn 配置搭建詳細教程2.1破解的時候,先要斷網,然后再操作,按如圖打開界面,點擊Manage License 2.2點擊Activate 2.3打開SQL.Prompt.Keygen.exe,將生成的注冊碼拷貝到輸入框內,然后點擊Activate 2.4 繼續點擊Activate manually 2.5 按如下步驟操...
2023-03-06
在mysql查詢語句中,為了實現查詢到某些信息,我們會用到多表的聯合查詢,下面這篇文章主要給大家介紹了關于MySQL三表聯合查詢操作的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下...
2023-03-06