| 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_tablessp_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及以上的版本中才能使用。 |