服务器系统集成及数据服务中心

 

一级栏目
一级栏目
一级栏目
一级栏目
一级栏目
一级栏目
一级栏目
一级栏目
谐态…………………………………………………………………………………………>>>

SQL-Server删除所有视图、存储过程

sql server 查看或删除所有视图、存储过程

1、列出所有视图

SELECT
Name,视图名字
Definition 视图内容
FROM sys.sql_modules AS m
INNER JOIN sys.all_objects AS o ON m.object_id = o.object_id
WHERE o.[type] = ’v’



2、删除视图

USE 数据库名
declare mycur cursor local for select [name] from dbo.sysobjects where xtype=’V’  声明游标
declare @name varchar(100)
 
OPEN mycur    打开游标
 
FETCH NEXT from mycur into @name
 
WHILE @@FETCH_STATUS = 0 
 
BEGIN
exec(’drop VIEW ’ + @name)
FETCH NEXT from mycur into @name   逐条读取
END
 
CLOSE mycur   关闭游标

3、利用Sql语句查询数据中的所有存储过程

a、利用sysobjects系统表,

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

select * from sysobjects where xtype=''''''''P''''''''

注意:在SQL SERVER2005中,出现了sys.objects目录视图来代替sysobjects系统表,我们在SQL SERVER2005及以后的版本中,可以使用sysobjects系统表与sys.objects目录视图的任意对象来查询所有存储过程。

但在sys.objects中,xtype列已经被type列代替,即在SQL SERVER2005及以后的版中可用以下代码来查询数据库中所有存储过程:
select * from sys.objects where type=''''''''P''''''''

两个的差别是X,xtype换成type。

b,利用sys.procedures目录视

sys.procedures目录视图,每个存储过程都会在返回结果集中占一行.
示例语句如下:
select * from sys.procedures

4、删除存储过程

USE 数据库名
declare mycur cursor local for select [name] from dbo.sysobjects where xtype=’P’
declare @name varchar(100)
 
OPEN mycur
 
FETCH NEXT from mycur into @name
 
WHILE @@FETCH_STATUS = 0 
 
BEGIN
exec(’drop PROCEDURE ’ + @name)
FETCH NEXT from mycur into @name
END
 
CLOSE mycur

 

5,

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

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

select * from sysobjects where xtype=''''''''U''''''''

注意:在SQL SERVER2005中,出现了sys.objects目录视图来代替sysobjects系统表,我们在SQL SERVER2005及以后的版本中,可以使用sysobjects系统表与sys.objects目录视图的任意对象来查询所有表。

2,利用sys.tables目录视图
sys.tables目录视图,为每个表对象返回一行.
示例语句如下:
select * from sys.tables

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

3,利用存储过程sp_tables
sp_tables存储过程,可返回可在当前环境中查询的对象列表。这代表可在FROM子句中出现的任何对象。
我们可以执行如下语句:
exec sp_tables

在结果集中筛选出所有TABLE_TYPE等于TABLE的记录就是表信息了。


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

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

select * from sysobjects where xtype=''''''''P''''''''

注意:在SQL SERVER2005中,出现了sys.objects目录视图来代替sysobjects系统表,我们在SQL SERVER2005及以后的版本中,可以使用sysobjects系统表与sys.objects目录视图的任意对象来查询所有存储过程。

但在sys.objects中,xtype列已经被type列代替,也就是说,在SQL SERVER2005及以后的版中可以使用以下代码来查询数据库中所有存储过程。
select * from sys.objects where type=''''''''P''''''''

2,利用sys.procedures目录视图
sys.procedures目录视图,每个存储过程都会在返回结果集中占一行.
示例语句如下:
select * from sys.procedures

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

发布时间:2020/5/13 阅读:5391次 来源:互联网
 


 
谐态分类
   
  行业新闻
 
  公司动态
 
  技术资料
 
  电脑维修
 
  恢复案例
 
  SQL数据库
 
  磁盘阵列
 
  服务器
 
  财务软件
 
  网络问题
 
  linux-XFS
 
  苹果电脑&系统
 
  安卓系统相关
 
  办公文件
 
  操作系统
 
  日常生活(烟台)
 
  网站相关
 
   
 
友情链接
 
 
 
 
 
   
公司地址:烟台电脑市场#308
电话:0535-6688830 E-Mail:163@163.com
Copyright©2011-2012 烟台瑞驰科贸有限公司 All Rights Reserved.
鲁ICP备11014811号-1
您是本站第 位访问者