sql server 查看或刪除所有視圖、存儲(chǔ)過程
1、列出所有視圖
SELECT Name,視圖名字 Definition 視圖內(nèi)容 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 數(shù)據(jù)庫名 declare mycur cursor local for select [name] from dbo.sysobjects where xtype=’V’  聲明游標(biāo) declare @name varchar(100)   OPEN mycur    打開游標(biāo)   FETCH NEXT from mycur into @name   WHILE @@FETCH_STATUS = 0    BEGIN exec(’drop VIEW ’ + @name) FETCH NEXT from mycur into @name   逐條讀取 END   CLOSE mycur   關(guān)閉游標(biāo)
3、利用Sql語句查詢數(shù)據(jù)中的所有存儲(chǔ)過程
a、利用sysobjects系統(tǒng)表,
在這個(gè)表中,在數(shù)據(jù)庫中創(chuàng)建的每個(gè)對(duì)象(例如約束、默認(rèn)值、日志、規(guī)則以及存儲(chǔ)過程)都有對(duì)應(yīng)一行,我們?cè)谠摫碇泻Y選出xtype等于P的所有記錄,就為數(shù)據(jù)庫中的存儲(chǔ)過程了。 示例語句如下:
select * from sysobjects where xtype=''''''''P''''''''
注意:在SQL SERVER2005中,出現(xiàn)了sys.objects目錄視圖來代替sysobjects系統(tǒng)表,我們?cè)赟QL SERVER2005及以后的版本中,可以使用sysobjects系統(tǒng)表與sys.objects目錄視圖的任意對(duì)象來查詢所有存儲(chǔ)過程。
但在sys.objects中,xtype列已經(jīng)被type列代替,即在SQL SERVER2005及以后的版中可用以下代碼來查詢數(shù)據(jù)庫中所有存儲(chǔ)過程: select * from sys.objects where type=''''''''P''''''''
兩個(gè)的差別是X,xtype換成type。
b,利用sys.procedures目錄視圖
sys.procedures目錄視圖,每個(gè)存儲(chǔ)過程都會(huì)在返回結(jié)果集中占一行. 示例語句如下: select * from sys.procedures
4、刪除存儲(chǔ)過程
USE 數(shù)據(jù)庫名 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語句查詢數(shù)據(jù)庫中的所有表
1,利用sysobjects系統(tǒng)表 在這個(gè)表中,在數(shù)據(jù)庫中創(chuàng)建的每個(gè)對(duì)象(例如約束、默認(rèn)值、日志、規(guī)則以及存儲(chǔ)過程)都有對(duì)應(yīng)一行,我們?cè)谠摫碇泻Y選出xtype等于U的所有記錄,就為數(shù)據(jù)庫中的表了。 示例語句如下::
select * from sysobjects where xtype=''''''''U''''''''
注意:在SQL SERVER2005中,出現(xiàn)了sys.objects目錄視圖來代替sysobjects系統(tǒng)表,我們?cè)赟QL SERVER2005及以后的版本中,可以使用sysobjects系統(tǒng)表與sys.objects目錄視圖的任意對(duì)象來查詢所有表。
2,利用sys.tables目錄視圖 sys.tables目錄視圖,為每個(gè)表對(duì)象返回一行. 示例語句如下: select * from sys.tables
注意:sys.tables目錄視圖也只有在SQL SERVER2005及以上的版本中才能使用。
3,利用存儲(chǔ)過程sp_tables sp_tables存儲(chǔ)過程,可返回可在當(dāng)前環(huán)境中查詢的對(duì)象列表。這代表可在FROM子句中出現(xiàn)的任何對(duì)象。 我們可以執(zhí)行如下語句: exec sp_tables
在結(jié)果集中篩選出所有TABLE_TYPE等于TABLE的記錄就是表信息了。
(二)利用Sql語句查詢數(shù)據(jù)中的所有存儲(chǔ)過程(重復(fù)3)
1,利用sysobjects系統(tǒng)表 在這個(gè)表中,在數(shù)據(jù)庫中創(chuàng)建的每個(gè)對(duì)象(例如約束、默認(rèn)值、日志、規(guī)則以及存儲(chǔ)過程)都有對(duì)應(yīng)一行,我們?cè)谠摫碇泻Y選出xtype等于P的所有記錄,就為數(shù)據(jù)庫中的存儲(chǔ)過程了。 示例語句如下:
select * from sysobjects where xtype=''''''''P''''''''
注意:在SQL SERVER2005中,出現(xiàn)了sys.objects目錄視圖來代替sysobjects系統(tǒng)表,我們?cè)赟QL SERVER2005及以后的版本中,可以使用sysobjects系統(tǒng)表與sys.objects目錄視圖的任意對(duì)象來查詢所有存儲(chǔ)過程。
但在sys.objects中,xtype列已經(jīng)被type列代替,也就是說,在SQL SERVER2005及以后的版中可以使用以下代碼來查詢數(shù)據(jù)庫中所有存儲(chǔ)過程。 select * from sys.objects where type=''''''''P''''''''
2,利用sys.procedures目錄視圖 sys.procedures目錄視圖,每個(gè)存儲(chǔ)過程都會(huì)在返回結(jié)果集中占一行. 示例語句如下: select * from sys.procedures
注意:sys.procedures目錄視圖也只有在SQL SERVER2005及以上的版本中才能使用。 |