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