获取sql所有存储过程脚本,获取sql表名,视图名,存储过程名,列名等
2011-08-22 17:58
423 查看
网上收集出来的,部分内容有可能有问题。需要自己分析哪些为正确的,不过大部分没问题!。
【1】方式:
【1】方式:
可以查询存储过程的脚本: select * from syscomments 可以查询表名,视图名,存储过程名等 select * from sysobjects --where xtype='U' --表名 --where xtype='V' --视图名 --where xtype='PK' --主键 --where xtype='P' --存储过程 【2】方式: 1.获取所有数据库名: (1)、Select Name FROM Master..SysDatabases order by Name 2.获取所有表名: (1)、Select Name FROM SysObjects Where XType=''U'' orDER BY Name XType=''U'':表示所有用户表; XType=''S'':表示所有系统表; (2)、SELECT name FROM sysobjects WHERE type = ''U'' AND sysstat = ''83'' 注意:一般情况只需要type = ''U'',但有时候会有系统表混在其中(不知道什么原因),加上后面一句后就能删除这些系统表了 3.获取所有字段名: (1)、Select Name FROM SysColumns Where id=Object_Id(''TableName'') (2)、SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND "syscolumns.id = object_id(''tableName'') 注意点: (a)这里为了重点突出某些重要内容,选取了其中几项信息输出。 (b)syscolumns表中只含有数据类型编号,要获取完整的名字需要从systypes表中找,一般用户使用的数据类型用xusertype对应比较好,不会出现一对多的情况。 (c)syscolumns.length得到的是物理内存的长度,所以nvarchar和varchar等类型在数据库中的显示是这个的一半。 4、得到表中主键所包含的列名: SELECT syscolumns.name FROM syscolumns,sysobjects,sysindexes,sysindexkeys WHERE syscolumns.id = object_id(''tablename'') AND sysobjects.xtype = ''PK'' AND sysobjects.parent_obj = syscolumns.id AND sysindexes.id = syscolumns.id AND sysobjects.name = sysindexes.name AND sysindexkeys.id = syscolumns.id AND sysindexkeys.indid = sysindexes.indid AND syscolumns.colid = sysindexkeys.colid 注意:这是在4张系统表中寻找的,关系比较复杂,大致可以表示为: syscolumns中存有表中的列信息和表id,sysobjects表中存有主键名字(即PK_Table类似)和表id,sysindexes中存 有主键名字和表id和index编号,sysindexkeys中存有表id和index编号和列编号,一项一项对应起来后就能找到列名了。 获取存储过程也可以使用: EXEC sp_helptext @objname='GuestComplaintsAndNetCommentReport' EXEC sp_helptext 'GuestComplaintsAndNetCommentReport' 根据名称获取存储过程内容的例子: select * from syscomments select * from sysobjects where xtype='P' SELECT sobj.id,sobj.name,comment.text from syscomments AS comment INNER JOIN sysobjects AS sobj ON sobj.id = comment.id where sobj.xtype = 'P' AND comment.id = '11147085' 获取表列名操作: SELECT * FROM sysobjects WHERE name = 'ProductsType' SELECT * FROM syscolumns WHERE id = '1538104520' |
相关文章推荐
- 获取sql所有存储过程脚本,获取sql表名,视图名,存储过程名,列名等
- 获取sql所有存储过程脚本,获取sql表名,视图名,存储过程名等
- Oracle中用sql查询获取数据库的所有触发器,所有存储过程,所有视图,所有表
- 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO
- SQL脚本获取指定SQLServer数据库所有表及视图的字段列表及类型、长度
- SQL 利用存储过程刷新所有视图
- SQL语句查询存储过程 视图 所有表 触发器
- 获取数据库表详细信息、存储过程、视图、的sql
- 得用SQL语句生成某个库下所有存储过程脚本,并每个存为一个文件
- sql 查询所有数据库、表名、表字段总结,判断表/视图/存储过程是否存在
- 用SQL语句生成某个库下所有存储过程脚本,并每个存为一个文件
- sql语句获取表,视图,存储过程等信息(自己总结)
- 查询数据库中所有包含某文本的存储过程、视图和函数的SQL
- ------------------------获取所有存储过程的脚本------------------------------------
- 查询数据库中所有包含某文本的存储过程、视图和函数的SQL
- sql server查询数据库中所有包含某文本的存储过程、视图和函数的SQL
- sql 脚本 查看所有的存储过程及文本
- sql中的读取(所有的存储过程、表名、某表的所有列名’、临时表)
- SQL脚本获取指定SQLServer数据库所有表及视图的字段列表及类型、长度
- 一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数,用SQL语句及视图、存储过程分别实现。