获取SqlServer存储过程定义的三种方法

作者:深蓝医生 时间:2024-01-24 06:03:38 

存储过程的概念

    存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。

    存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。

    由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。同时由于在调用时只需用提供存储过程名和必要的参数信息,所以在一定程度上也可以减少网络流量、简单网络负担。

存储过程的优点

        A、 存储过程允许标准组件式编程

        存储过程创建后可以在程序中被多次调用执行,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的可移植性。

        B、 存储过程能够实现较快的执行速度

        如果某一操作包含大量的T-SQL语句代码,分别被多次执行,那么存储过程要比批处理的执行速度快得多。因为存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划。而批处理的T-SQL语句每次运行都需要预编译和优化,所以速度就要慢一些。

        C、 存储过程减轻网络流量

        对于同一个针对数据库对象的操作,如果这一操作所涉及到的T-SQL语句被组织成一存储过程,那么当在客户机上调用该存储过程时,网络中传递的只是该调用语句,否则将会是多条SQL语句。从而减轻了网络流量,降低了网络负载。

        D、 存储过程可被作为一种安全机制来充分利用

        系统管理员可以对执行的某一个存储过程进行权限限制,从而能够实现对某些数据访问的限制,避免非授权用户对数据的访问,保证数据的安全。

以上给大家介绍的存储过程的概念和存储过程的优点都是给本文做铺垫,重点给大家介绍SqlServer存储过程定义的三种方法,一起看看吧!

第一种:


declare @p_text varchar(max)
SELECT @p_text= text
FROM syscomments
WHERE id = ( SELECT id FROM sysobjects WHERE name = ' 存储过程名称 ')
print @p_text

但当存储过程内容比较长的时候,text的内容显示不完全。

第二种:


declare @p_text varchar(max)
SELECT @p_text= definition FROM sys.sql_modules
JOIN sys.objects ON sys.sql_modules.object_id=sys.objects.object_id --and type='P'
and sys.objects.name='sp_MSupd_dboInd_IndependenceReportTo'
print @p_text

内容格式良好,但是Print本身不能显示超过 8000字节的内容,所以存储过程内容太长这种方式还是不行。

第三种:


exec sp_helptext '[sp_MSupd_dboRpt_Customer]'

返回定义的内容但是一个文本行内容一个记录行,这样就可以解决上面的不足了。

以上所述是小编给大家介绍的获取SqlServer存储过程定义的三种方法网站的支持!

来源:http://www.cnblogs.com/bluedoctor/archive/2016/07/19/5686576.html

标签:sqlserver,存储过程
0
投稿

猜你喜欢

  • python调用cmd复制文件代码分享

    2022-12-26 11:18:22
  • numpy中的log和ln函数解读

    2023-06-14 22:46:40
  • Python基础之字符串操作常用函数集合

    2023-11-26 23:26:12
  • Unobtrusive的Web开发

    2007-11-23 13:13:00
  • SQL Server实现将特定字符串拆分并进行插入操作的方法

    2024-01-21 04:48:31
  • vue 自定义icon图标的步骤

    2024-04-30 10:37:15
  • python嵌套字典比较值与取值的实现示例

    2023-12-25 01:28:35
  • python中的[1:]、[::-1]、X[:,m:n]和X[1,:]的使用

    2023-12-10 00:48:42
  • Vue不同项目之间传递、接收参数问题

    2024-04-30 10:47:06
  • python错误提示:Errno 2] No such file or directory的解决方法

    2022-03-30 10:46:26
  • Python按键或值对字典进行排序

    2021-01-02 10:45:52
  • 微信跳一跳自动运行python脚本

    2023-11-22 01:42:29
  • 2007/12/23更新创意无限,简单实用(javascript log)

    2024-04-26 17:11:46
  • AJAX初体验之上手篇

    2007-08-23 08:50:00
  • python实现实时视频流播放代码实例

    2021-09-11 21:11:22
  • python实现对doc,txt,xls文档的读写操作

    2021-05-09 20:01:14
  • window环境下使用VScode连接虚拟机MySQL方法

    2024-01-21 04:42:06
  • SQLServer2005混合模式登录配置(用户登录错误18452,233,4064)

    2024-01-28 17:47:34
  • python直接获取API传递回来的参数方法

    2023-11-10 18:01:59
  • 巧用Dreamweaver MX共享Execl XP文件

    2009-07-14 21:56:00
  • asp之家 网络编程 m.aspxhome.com