位置: 编程技术 - 正文

SQL Server存储过程的基础说明(sql server存储过程写法)

编辑:rootadmin
可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。 也可以创建在Microsoft SQL Server启动时自动运行的存储过程。 语法 CREATE PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [ ...n ] 参数 procedure_name 新存储过程的名称。过程名必须符合标识符规则,且对于数据库及其所有者必须唯一。有关更多信息,请参见使用标识符。 要创建局部临时过程,可以在 procedure_name 前面加一个编号符 (#procedure_name),要创建全局临时过程,可以在 procedure_name 前面加两个编号符 (##procedure_name)。完整的名称(包括 # 或 ##)不能超过 个字符。指定过程所有者的名称是可选的。 ;number 是可选的整数,用来对同名的过程分组,以便用一条 DROP PROCEDURE 语句即可将同组的过程一起除去。例如,名为 orders 的应用程序使用的过程可以命名为 orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc 语句将除去整个组。如果名称中包含定界标识符,则数字不应包含在标识符中,只应在 procedure_name 前后使用适当的定界符。 @parameter 过程中的参数。在 CREATE PROCEDURE 语句中可以声明一个或多个参数。用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值)。存储过程最多可以有 2. 个参数。 使用 @ 符号作为第一个字符来指定参数名称。参数名称必须符合标识符的规则。每个过程的参数仅用于该过程本身;相同的参数名称可以用在其它过程中。默认情况下,参数只能代替常量,而不能用于代替表名、列名或其它数据库对象的名称。有关更多信息,请参见 EXECUTE。 data_type 参数的数据类型。所有数据类型(包括 text、ntext 和 image)均可以用作存储过程的参数。不过,cursor 数据类型只能用于 OUTPUT 参数。如果指定的数据类型为 cursor,也必须同时指定 VARYING 和 OUTPUT 关键字。有关 SQL Server 提供的数据类型及其语法的更多信息,请参见数据类型。 说明 对于可以是 cursor 数据类型的输出参数,没有最大数目的限制。 VARYING 指定作为输出参数支持的结果集(由存储过程动态构造,内容可以变化)。仅适用于游标参数。 default 参数的默认值。如果定义了默认值,不必指定该参数的值即可执行过程。默认值必须是常量或 NULL。如果过程将对该参数使用 LIKE 关键字,那么默认值中可以包含通配符(%、_、[] 和 [^])。 OUTPUT 表明参数是返回参数。该选项的值可以返回给 EXEC[UTE]。使用 OUTPUT 参数可将信息返回给调用过程。Text、ntext 和 image 参数可用作 OUTPUT 参数。使用 OUTPUT 关键字的输出参数可以是游标占位符。 表示最多可以指定 2. 个参数的占位符。 {RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION} RECOMPILE 表明 SQL Server 不会缓存该过程的计划,该过程将在运行时重新编译。在使用非典型值或临时值而不希望覆盖缓存在内存中的执行计划时,请使用 RECOMPILE 选项。 ENCRYPTION 表示 SQL Server 加密 syscomments 表中包含 CREATE PROCEDURE 语句文本的条目。使用 ENCRYPTION 可防止将过程作为 SQL Server 复制的一部分发布。 说明 在升级过程中,SQL Server 利用存储在 syscomments 中的加密注释来重新创建加密过程。 FOR REPLICATION 指定不能在订阅服务器上执行为复制创建的存储过程。.使用 FOR REPLICATION 选项创建的存储过程可用作存储过程筛选,且只能在复制过程中执行。本选项不能和 WITH RECOMPILE 选项一起使用。 AS 指定过程要执行的操作。 sql_statement 过程中要包含的任意数目和类型的 Transact-SQL 语句。但有一些限制。 是表示此过程可以包含多条 Transact-SQL 语句的占位符。 注释 存储过程的最大大小为 MB。 用户定义的存储过程只能在当前数据库中创建(临时过程除外,临时过程总是在 tempdb 中创建)。在单个批处理中,CREATE PROCEDURE 语句不能与其它 Transact-SQL 语句组合使用。 默认情况下,参数可为空。如果传递 NULL 参数值并且该参数在 CREATE 或 ALTER TABLE 语句中使用,而该语句中引用的列又不允许使用 NULL,则 SQL Server 会产生一条错误信息。为了防止向不允许使用 NULL 的列传递 NULL 参数值,应向过程中添加编程逻辑或为该列使用默认值(使用 CREATE 或 ALTER TABLE 的 DEFAULT 关键字)。 建议在存储过程的任何 CREATE TABLE 或 ALTER TABLE 语句中都为每列显式指定 NULL 或 NOT NULL,例如在创建临时表时。ANSI_DFLT_ON 和 ANSI_DFLT_OFF 选项控制 SQL Server 为列指派 NULL 或 NOT NULL 特性的方式(如果在 CREATE TABLE 或 ALTER TABLE 语句中没有指定的话)。如果某个连接执行的存储过程对这些选项的设置与创建该过程的连接的设置不同,则为第二个连接创建的表列可能会有不同的为空性,并且表现出不同的行为方式。如果为每个列显式声明了 NULL 或 NOT NULL,那么将对所有执行该存储过程的连接使用相同的为空性创建临时表。 在创建或更改存储过程时,SQL Server 将保存 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 的设置。执行存储过程时,将使用这些原始设置。因此,所有客户端会话的 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 设置在执行存储过程时都将被忽略。在存储过程中出现的 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 语句不影响存储过程的功能。 其它 SET 选项(例如 SET ARITHABORT、SET ANSI_WARNINGS 或 SET ANSI_PADDINGS)在创建或更改存储过程时不保存。如果存储过程的逻辑取决于特定的设置,应在过程开头添加一条 SET 语句,以确保设置正确。从存储过程中执行 SET 语句时,该设置只在存储过程完成之前有效。之后,设置将恢复为调用存储过程时的值。这使个别的客户端可以设置所需的选项,而不会影响存储过程的逻辑。 说明 SQL Server 是将空字符串解释为单个空格还是解释为真正的空字符串,由兼容级别设置控制。如果兼容级别小于或等于 ,SQL Server 就将空字符串解释为单个空格。如果兼容级别等于 ,则 SQL Server 将空字符串解释为空字符串。有关更多信息,请参见 sp_dbcmptlevel。 获得有关存储过程的信息 若要显示用来创建过程的文本,请在过程所在的数据库中执行 sp_helptext,并使用过程名作为参数。 说明 使用 ENCRYPTION 选项创建的存储过程不能使用 sp_helptext 查看。 若要显示有关过程引用的对象的报表,请使用 sp_depends。 若要为过程重命名,请使用 sp_rename。 引用对象 SQL Server 允许创建的存储过程引用尚不存在的对象。在创建时,只进行语法检查。执行时,如果高速缓存中尚无有效的计划,则编译存储过程以生成执行计划。只有在编译过程中才解析存储过程中引用的所有对象。因此,如果语法正确的存储过程引用了不存在的对象,则仍可以成功创建,但在运行时将失败,因为所引用的对象不存在。有关更多信息,请参见延迟名称解析和编译。 延迟名称解析和兼容级别 SQL Server 允许 Transact-SQL 存储过程在创建时引用不存在的表。这种能力称为延迟名称解析。不过,如果 Transact-SQL 存储过程引用了该存储过程中定义的表,而兼容级别设置(通过执行 sp_dbcmptlevel 来设置)为 ,则在创建时会发出警告信息。而如果在运行时所引用的表不存在,将返回错误信息。有关更多信息,请参见 sp_dbcmptlevel 和延迟名称解析和编译。 执行存储过程 成功执行 CREATE PROCEDURE 语句后,过程名称将存储在 sysobjects 系统表中,而 CREATE PROCEDURE 语句的文本将存储在 syscomments 中。第一次执行时,将编译该过程以确定检索数据的最佳访问计划。 使用 cursor 数据类型的参数 存储过程只能将 cursor 数据类型用于 OUTPUT 参数。如果为某个参数指定了 cursor 数据类型,也必须指定 VARYING 和 OUTPUT 参数。如果为某个参数指定了 VARYING 关键字,则数据类型必须是 cursor,并且必须指定 OUTPUT 关键字。

推荐整理分享SQL Server存储过程的基础说明(sql server存储过程写法),希望有所帮助,仅作参考,欢迎阅读内容。

SQL Server存储过程的基础说明(sql server存储过程写法)

文章相关热门搜索词:sqlserver存储过程if语句,sqlserver存储过程if语句,sqlserver存储过程if语句,sqlserver存储过程返回多个结果集,sqlserver存储过程if语句,sqlserver存储过程语法,sql server存储过程写法,sqlserver存储过程if语句,内容如对您有帮助,希望把文章链接给更多的朋友!

列出SQL Server中具有默认值的所有字段的语句 专家解答通过查询任何数据库中的三个系统表,你可以获得每个表的每一个字段的默认值。下面是这个核心查询。它返回分配给当前数据库中每个用户

文本、Excel、Access数据导入SQL Server的方法 如下所示:"AWU","","ZX-3","","","","","","","","QCR","""AYE","","ZX","","","","","","","","",""虽然

一个分页存储过程代码 --------------------------------------用途:分页存储过程(对有主键的表效率极高)--说明:------------------------------------ALTERPROCEDURE[UP_GetRecordByPage]@tblNamevarchar(),-

标签: sql server存储过程写法

本文链接地址:https://www.jiuchutong.com/biancheng/348744.html 转载请保留说明!

上一篇:阿拉伯数字转大写中文_财务常用sql存储过程(阿拉伯数字转大写函数)

下一篇:列出SQL Server中具有默认值的所有字段的语句(sql server的实例)

  • 三公经费指的是什么
  • 企业稳岗返还申请报告模板
  • 外勤会计主要是干什么
  • 小规模商贸公司没有进项可以开发票吗?
  • 城市规划部门收取的市政建设配套费是否作为契税的征税基数
  • 无形资产资本化加计扣除可抵扣暂时性差异
  • 租赁期间怎么算
  • 服装租赁开票税目
  • 企业所得税季报资产总额怎么填
  • 印鉴变更手续费50元
  • 经济补偿金也需要交个人所得税吗?
  • 拿租金抵押金如何做账?
  • 企业发票入账冲销流程
  • 企业未实际列支教育经费要纳税调整吗?
  • 微信红包税前扣除
  • 为什么收到的劳务费税点打星号?
  • 兼职教师个人所得税起征点
  • 收到的劳务费发票进什么科目
  • 补发工资如何缴纳工人所得税的法条
  • 逾期申报会对纳税人产生哪些不良影响?
  • 税前扣除是好事吗
  • 设备安装公司如何经营
  • 研发费加计扣除做账务处理吗
  • 项目工程会计账务处理
  • 微软输入法中文输入卡顿
  • dhcp存在哪些安全隐患
  • 法人向公司借款要交什么税
  • 在资本相对充足的情况下,为什么还要进一步引进外资
  • logd是什么进程
  • 福利补贴属于工资吗
  • 浏览器无痕浏览后警察能查到吗
  • 最新版本金铲铲强势阵容
  • 南奥索峰的Lac d'Ayous小屋,法国 (© Eneko Aldaz/Offset by Shutterstock)
  • 预收账款和应收账款的转换
  • 简述时期指标和时点指标的特点
  • 大二一学期学分多少合适
  • 增值税和普通发票的区别图片
  • 小米开发回稳定
  • 股东从公司账户上转钱违法吗
  • 营业执照上的注册资金可以改吗
  • 销售发票重复开库存商品如何处理?
  • 物流小规模企业有哪些
  • 农产品进项税抵扣填报方法
  • 销售黄金的会计分录
  • mongodb分区分片
  • 防暑降温费用发放标准
  • 两免三减半取消了吗
  • 增值税抵扣环节
  • mysql数据库的设计与实现
  • 可供出售的价格基本上可以估计
  • 电子商业承兑汇票的承兑有以下几种方式
  • 去年企业所得税多计提怎么调整
  • 附加税的印花税怎么计算
  • 递延收益为什么不影响利润总额
  • 用银行存款支付本季度短期借款利息
  • 付款金额与发票金额不一致能入账吗?
  • 招待费具体范围包括哪些
  • 单位组织提供员工服务
  • 冲回去年收入会计分录
  • 多计提房产税怎么冲销
  • 借款合同的印花税计税依据
  • 公司注销财务账本怎么处理
  • 金税盘初始化密码
  • 计提税金如何进项抵扣
  • 如何把数据导入mysql中
  • ubuntu如何截图快捷键
  • win10怎么关闭securboot
  • win7系统摄像头图标不见了
  • linux扫描硬件
  • linux中make
  • linux 常见
  • linux使用mv命令,结果文件不见了
  • 事件委托实现
  • android中使用md5后报非法延续字节
  • Android游戏开发打砖块
  • jquery图片轮播无缝连接
  • Python的pycurl包用法简介
  • javascript flash下fromCharCode和charCodeAt方法使用说明
  • 医院是自给自足吗
  • 百旺开票软件打不开怎么回事
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设