linux怎么查看存储过程,SqlServer中Sql查看存储过程

( 一)利用Sql语句查询数据库中的所有表

1.利用sysobjects系统表

select * from sysobjects where xtype='U'

2,利用sys.tables目录视图

sys.tables目录视图,为每个表对象返回一行.

select * from sys.tables

注意:sys.tables目录视图也只有在SQL SERVER2005及以上的版本中才能使用。

3,利用存储过程sp_tables

exec sp_tables

(二)利用Sql语句查询数据中的所有存储过程

1.sysobjects系统表,在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都有对应一行,我们在该表中筛选出xtype等于P的所有记录,就为数据库中的存储过程了。

select * from sysobjects where xtype='P'

select * from sys.objects where type='P'

2.sys.procedures目录视图,每个存储过程都会在返回结果集中占一行.

select * from sys.procedures

适用技巧:

Sql Server查看所有存储过程或视图的位置及内容

select a.name,a.[type],b.[definition] from sys.all_objects a,sys.sql_modules b

where a.is_ms_shipped=0 and a.object_id = b.object_id and a.[type] in ('P','V','AF')

order by a.[name] asc

从上面的SQL语句可以看出,主要用到了两个 sys.all_objects 和 sys.sql_modules 两个系统存储过程,

其中 sys.all_objects 是 sql server 2012 版本中的系统视图,在 更早期的 sql server 版本中,

应该用 sys.objects,同时,sys.objects 在 2012 中也是可以用的,只不过考虑到后续兼容性,在新版本中,用新的 name 还是比较好。

Sys.All_Objects(sys.objects)

该视图 很出名,是经常使用到的,主要是:显示所有架构范围内的用户定义对象和系统对象的 UNION

主要字段:

1. Name:对象名

2. Object_id:对象标识号,在数据中是唯一的

3. Principal_id :架构所有者ID

4. Parent_object_id:此对象所属对象的ID,0 = 不是子对象

5. Type:对象类型,常用的类型有, AF = 聚合函数 P = SQL 存储过程  V = 视图  TT = 表类型   U = 表(用户定义类型)

6. Type_desc:对象类型的说明

7. Create_date / Modify_date :创建日期 / 修改日期

8. is_ms_shipped:是否为 内部 SQL Server 组建所创建的对象,常用来判断 是否是 系统内置或用户自定义 的对象

Sys.Sql_Modules

对每个 SQL 语言定义的模块对象都返回一行。 类型为 P、RF、V、TR、FN、IF、TF 和 R 的对象均有关联的 SQL 模块。

主要字段:

1. Object_id:对象标识号,在数据中是唯一的

2. Definition:用于定义此模块的 SQL 文本

SqlServer 中如何查看某一个Sql语句是复用了执行计划,还是重新生成了执行计划

我们知道SqlServer的查询优化器会将所执行的Sql语句的执行计划作缓存,如果后续查询可以复用缓存中的执行计划,那么SqlServer就会为后续查询复用执行计划而不是重新生成一个新的执行计划,因为 ...

sqlserver中,查看某个函数的调用情况

今天想在sqlserver中看看自己写的函数都被哪个函数或存储过程调用了,手工检查起来太慢了,于是在网上找一个快速的方法,分享一下. select * from sys.all_sql_modules ...

SqlServer中Sql语句的逻辑执行顺序

准备数据 Sql脚本如下,两张表,一张客户表Customers只包含customerid和city字段,一张订单表Orders包含orderid和customerid(关联Customers的cust ...

oracle中怎么查看存储过程的源码

今天想找几天前写的存储过程的源码看看,发现自己熟悉的命令怎么都不好使,要不提示标示符错误要不就是提示未选定行,通过baidu得知type跟name变量要弄成大写的.. select text from ...

SqlServer 动态SQL(存储过程)中Like 传入参数无正确返回值的问题

最近在做项目时,以动态Sql进行Like语句查询时发现应该返回的结果却一直返回空,后来发现是写法错误: 错误SQL: DECLARE @0 varchar(20) SET @0 = 'XA-LZ' S ...

SQLSERVER中的系统存储过程的使用的总结

-----------------------------系统存储过程-------------------------------- --列出SQL Server实例中的数据库sp_database ...

Spring 中 SQL 的存储过程

SimpleJdbcCall 类可以被用于调用一个包含 IN 和 OUT 参数的存储过程.你可以在处理任何一个 RDBMS 时使用这个方法,就像 Apache Derby, DB2, MySQL, M ...

SQLServer中SQL语句与可执行二进制语句

SQLServer可以执行正常SQL语句也可以执行被转换的二进制语句,一般会用此方法进行数据库注入操作,骗过基本的字符过滤 --将二进制格式转为普通SQL语句 ) = 0x53454C45435420 ...

SQLServer中sql for xml path 的用法

我们通常需要获取一个多行的某个字段拼出的字符串,我们可以使用for xml path进行处理:下面将介绍for xml path的具体用法: 创建测试表&插入测试数据 在数据库中新增测试表 C ...

随机推荐

移动web基本知识

1.pixel像素基础 1.px:csspixel 逻辑像素,浏览器所使用的抽象单位 2.dp,pt:设备无关像素 3.devicePixelPatio 设备像素缩放比例 2.viewport 1. ...

Ubuntu15.10使用mysql

安装 sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install libmysql ...

Ext学习-基础概念,核心思想介绍

1.目标   本阶段的目标是通过学习一些基础知识来对EXTJS有个整体的了解,知道EXTJS的基础语法,核心设计思想等等 2.内容   1.基础部分学习   2.EXTJS类系统介绍   3.EXTJ ...

NFS网络文件共享服务

NFS-网络文件系统,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或目录. NFS在企业中得应用场景 在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频.图片.附件等静 ...

IPython学习笔记

IPython 前言 Life is short, you need Python 最近开始学习数据挖掘,需要使用到Python,其实大学时代就有接触过Python,但是却始终没有系统的进行学习过. ...

UVA 10037 贪心算法

题目链接:http://acm.hust.edu.cn/vjudge/contest/122829#problem/A 题目大意:N个人夜里过河,总共只有一盏灯,每次最多过两个人,然后需要有人将灯送回 ...

python3-day3(内置函数)

1.内置函数 1>print(bytearray('王',encoding='utf8')) 2>print(bytes('王',encoding='utf8')) 3>bool(' ...

dev gridcontrol 单箱效果

private void gridView1_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChan ...

day02-运算符 and 和 or 的用法

# 运算符的优先级 # () > not > and > or # and 必须两边表达式都为真,才为真 # or 如果表达式有一边为真,则为真 # not 表示非.比如 not 2 ...

mui slider禁止滑动

网上方法: mui('.mui-slider').slider().setStopped(true); 实际使用 mui('.mui-slider').slider().stopped = true; ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 上批量导出 SqlServer 数据库存储过程,可以通过以下步骤实现: 1. 安装 mssql-tools,它包含了 sqlcmd 工具,可以用于执行 T-SQL 命令。可以通过以下命令安装 mssql-tools: ``` curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/msprod.repo sudo yum update sudo yum install mssql-tools unixODBC-devel ``` 2. 创建一个包含所有存储过程名称的脚本(例如,sp_list.sql),内容如下: ``` SELECT name FROM sys.objects WHERE type = 'P' ORDER BY name ``` 3. 导出存储过程,可以使用以下命令: ``` cat sp_list.sql | sqlcmd -S <server_name> -U <user_name> -P <password> -d <database_name> -h-1 -s"," -W -k1 > procedures.csv ``` 其,<server_name> 是 SqlServer 服务器名称;<user_name> 和 <password> 是连接 SqlServer 的用户名和密码;<database_name> 是要导出存储过程的数据库名称。 该命令将执行 sp_list.sql 脚本,获取存储过程名称列表,并将结果输出到 procedures.csv 文件,每个存储过程名称占一行。 4. 执行以下命令,批量导出存储过程: ``` while read line; do sqlcmd -S <server_name> -U <user_name> -P <password> -d <database_name> -Q "sp_helptext '$line'" | iconv -t utf-8 | sed "s/^CREATE PROCEDURE/USE <database_name> GO CREATE PROCEDURE/g" >> procedures.sql; done < procedures.csv ``` 该命令将逐行读取 procedures.csv 文件存储过程名称,并使用 sqlcmd 命令获取每个存储过程的定义。然后,将每个存储过程的定义输出到 procedures.sql 文件。 注意:该命令假设存储过程名称不包含特殊字符。如果存储过程名称包含特殊字符(例如空格、括号等),需要在脚本进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值