SQLserver存储过程写法与设置定时执行存储过程方法详解

2023-12-01 0 566
目录

    最近工作中需要写SQLserver的存储过程,第一次使用,简单记录下,以防遗忘。

    在SQLserver可视化工具中编写,我的工具如下图:

    SQLserver存储过程写法与设置定时执行存储过程方法详解

    首先点击你的数据库,找到可编程性,在可编程性里面右击存储过程–>点击新建存储过程

    SQLserver存储过程写法与设置定时执行存储过程方法详解

    然后开始写你的存储过程SQL

    –写法(无参):

    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代理,右击作业–>新建作业

    SQLserver存储过程写法与设置定时执行存储过程方法详解

    1.常规(名称自己定义,确定即可)

    SQLserver存储过程写法与设置定时执行存储过程方法详解

    2.点击步骤–>点击最下面的新建

    2.1)步骤名称(一般是exec 存储过程名,我的是exec [dbo].[PR_ShowData])

    2.2)类型选择Transact-SQL 脚本(T-SQL)

    2.3)数据库选择你的数据库

    2.4)命令exec PR_ShowData,最后点击确定即可。

    SQLserver存储过程写法与设置定时执行存储过程方法详解

    3.点击计划–>新建

    3.1)名称写2.4)中的,我的是exec PR_ShowData

    3.2)计划类型根据自己的业务需求,我是重复执行,后面的已启用打勾

    3.3)频率–>执行(我选择的是每天)–>执行间隔(我选的1天)

    3.4)每天频率我选择的是执行间隔十分钟执行一次,开始时间和结束时间根据自己需要选择时间段

    3.5)持续时间(开始和结束时间自己选择,如果要一直执行就选择无结束日期)

    3.6)摘要–>说明(会把你设置的信息总结,可以看是不是复合自己的要求)

    3.7)最后点击确定即可

    SQLserver存储过程写法与设置定时执行存储过程方法详解

    我这里计划列表显示的有是因为我已经建过了。

    SQLserver存储过程写法与设置定时执行存储过程方法详解

    如上便实现了SQLserver存储过程简单写法与设置定时执行存储过程方法了

    总结

    到此这篇关于SQLserver存储过程写法与设置定时执行存储过程的文章就介绍到这了,更多相关SQLserver设置定时执行存储过程内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!

    您可能感兴趣的文章:

    • SQL Server 2008 存储过程示例
    • SqlServer获取存储过程返回值的实例
    • SQL SERVER调用存储过程小结
    • 一些SQL Server存储过程参数及例子
    • SQLServer用存储过程实现插入更新数据示例
    • SQL Server 分页查询存储过程代码
    • sqlserver存储过程语法详解

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悠久资源 MsSql SQLserver存储过程写法与设置定时执行存储过程方法详解 https://www.u-9.cn/database/mssql/4721.html

    常见问题

    相关文章

    发表评论
    暂无评论
    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务