亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 遍歷數據庫.txt

?? 動態sql語句基本語法 1 :普通SQL語句可以用Exec執行 eg: Select * from tableName Exec( select * from tableName )
?? TXT
字號:
 從SQLSERVER6.5開始,MS提供了一個非常有用的系統存儲過程sp_MSforeachtable和sp_MSforeachDB;作為DBA會經常需要檢查所有的數據庫或用戶表,比如:檢查所有數據庫的容量;看看指定數據庫所有用戶表的容量,所有表的記錄數,我們一般處理這樣的問題都是用游標分別處理處理,比如:在數據庫檢索效率非常慢時,我們想檢查數據庫所有的用戶表,我們就必須這樣寫游標:

DECLARE @TableName varchar(255)
DECLARE @ExeSQL varchar(4000) 
DECLARE Table_Cursor CURSOR FOR SELECT [name] FROM sysobjects WHERE xtype='U'
OPEN Table_Cursor
FETCH NEXT FROM  Table_Cursor INTO @TableName
WHILE(@@FETCH_STATUS=0)
BEGIN
 PRINT @TableName
 SELECT @ExeSQL='DBCC CHECKTABLE(mailto:'''%252B@TableName%252B''')'
 EXEC(@EXESQL)
FETCH NEXT FROM  Table_Cursor INTO @TableName
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor
GO
    如果我們用sp_MSforeachtable就可以非常方便的達到相同的目的:
EXEC sp_MSforeachtable @command1=“print '?' DBCC CHECKTABLE('?')”

    大家可以看出這樣就更加簡潔(雖然在后臺也是通過游標來處理的),下面我們就仔細分析一下sp_MSforeachtable這個存儲過程:

    我們看看sp_MSforeachtable詳細的CODE:
USE MASTER 
GO
SP_HELPTEXT sp_MSforeachtable
--下面時sp_MSforeachtable的原始代碼
CREATE proc sp_MSforeachtable
 @command1 nvarchar(2000), @replacechar nchar(1) = N'?', @command2 nvarchar(2000) = null,
   @command3 nvarchar(2000) = null, @whereand nvarchar(2000) = null,
 @precommand nvarchar(2000) = null, @postcommand nvarchar(2000) = null
as
 /* This proc returns one or more rows for each table (optionally, matching @where), with each table defaulting to its 
own result set */
 /* @precommand and @postcommand may be used to force a single result set via a temp table。 */
 /* Preprocessor won't replace within quotes so have to use str()。 */
 declare @mscat nvarchar(12)
 select @mscat = ltrim(str(convert(int, 0x0002)))
 if (@precommand is not null)
  exec(@precommand)
 /* Create the select */
   exec(N'declare hCForEach cursor global for select ''['' + REPLACE(user_name(uid), N'']'', N'']]'') + '']'' + ''。'' + ''['' 
+ REPLACE(object_name(id), N'']'', N'']]'') + '']'' from dbo。sysobjects o '
         + N' where OBJECTPROPERTY(o。id, N''IsUserTable'') = 1 ' + N' and o。category & ' + @mscat + N' = 0 '
         + @whereand)
 declare @retval int
 select @retval = @@error
 if (@retval = 0)
  exec @retval = sp_MSforeach_worker @command1, @replacechar, @command2, @command3
 if (@retval = 0 and @postcommand is not null)
  exec(@postcommand)
 return @retval

這個系統存儲過程有7個參數:

 @command1 nvarchar(2000),  --第一條運行的T-SQL指令
 @replacechar nchar(1) = N'?',   --指定的占位符號 
 @command2 nvarchar(2000) = null,--第二條運行的T-SQL指令
    @command3 nvarchar(2000) = null, --第三條運行的T-SQL指令
 @whereand nvarchar(2000) = null, --可選條件來選擇表
 @precommand nvarchar(2000) = null, --在表前執行的指令
 @postcommand nvarchar(2000) = null --在表后執行的指令

所以上面的語句也可以這樣寫:

EXEC sp_MSforeachtable @command1=“print '?'”,
         @command2= “DBCC CHECKTABLE('?')”

    了解參數以后,就讓我們做幾個實列吧:

1。獲得每個表的記錄數和容量:

EXEC sp_MSforeachtable @command1=“print '?'“,
         @command2=“sp_spaceused '?'“,
         @command3= “SELECT count(*) FROM ? ”

2。更新PUBS數據庫中已t開頭的所有表的統計:

EXEC sp_MSforeachtable @whereand=“and name like 't%'”,
         @replacechar='*',
         @precommand=“print 'Updating Statistics。。。。。' print ''”,
         @command1=“print '*' update statistics * “,
         @postcommand= “print''print 'Complete Update Statistics!'”

sp_MSforeachDB除了@whereand外,和sp_MSforeachtable的參數是一樣的,我們可以通過這個存儲過程檢測所有的數據庫,比如:

1。獲得所有的數據庫的存儲空間:
       EXEC sp_MSforeachdb  @command1=“print '?'“,
                                         @command2=“sp_spaceused “
2。檢查所有的數據庫
       EXEC sp_MSforeachdb  @command1=“print '?'“,
                                           @command2=“DBCC CHECKDB (?) “
    有了上面的分析,我們可以建立自己的sp_MSforeachObject:

USE MASTER
GO
CREATE proc sp_MSforeachObject
 @objectType int=1,
 @command1 nvarchar(2000), 
 @replacechar nchar(1) = N'?', 
 @command2 nvarchar(2000) = null,
    @command3 nvarchar(2000) = null, 
 @whereand nvarchar(2000) = null,
 @precommand nvarchar(2000) = null, 
 @postcommand nvarchar(2000) = null
as
 /* This proc returns one or more rows for each table (optionally, matching @where), with each table defaulting to its 
own result set */
 /* @precommand and @postcommand may be used to force a single result set via a temp table。 */
 /* Preprocessor won't replace within quotes so have to use str()。 */
 declare @mscat nvarchar(12)
 select @mscat = ltrim(str(convert(int, 0x0002)))
 if (@precommand is not null)
  exec(@precommand)
 /* Defined  @isobject for save object type */
 Declare @isobject varchar(256)
 select @isobject= case @objectType when 1 then 'IsUserTable'
         when 2 then 'IsView'
         when 3 then 'IsTrigger'
         when 4 then 'IsProcedure' 
         when 5 then 'IsDefault'   
         when 6 then 'IsForeignKey'
         when 7 then 'IsScalarFunction'
         when 8 then 'IsInlineFunction'
         when 9 then 'IsPrimaryKey'
         when 10 then 'IsExtendedProc'    
         when 11 then 'IsReplProc'
         when 12 then 'IsRule'
                  end
 /* Create the select */
 /* Use @isobject variable isstead of IsUserTable string */
EXEC(N'declare hCForEach cursor global for select ''['' + REPLACE(user_name(uid), N'']'', N'']]'') + '']'' + ''。'' + ''['' + 
REPLACE(object_name(id), N'']'', N'']]'') + '']'' from dbo。sysobjects o '
        + N' where OBJECTPROPERTY(o。id, mailto:N'''%252B@isobject%252B''') = 1 '+N' and o。category & ' + @mscat + N' = 0 '
       + @whereand)
 declare @retval int
 select @retval = @@error
 if (@retval = 0)
  exec @retval = sp_MSforeach_worker @command1, @replacechar, @command2, @command3
 if (@retval = 0 and @postcommand is not null)
  exec(@postcommand)
 return @retval
GO

    這樣我們來測試一下:

1。獲得所有的存儲過程的腳本:
         EXEc sp_MSforeachObject @command1=“sp_helptext '?' “,@objectType=4

2。獲得所有的視圖的腳本:
         EXEc sp_MSforeachObject @command1=“sp_helptext '?' “,@objectType=2

3。比如在開發過程中,沒一個用戶都是自己的OBJECT OWNER,所以在真實的數據庫時都要改為DBO:
           EXEc sp_MSforeachObject @command1=“sp_changeobjectowner '?', 'dbo'“,@objectType=1
           EXEc sp_MSforeachObject @command1=“sp_changeobjectowner '?', 'dbo'“,@objectType=2
            EXEc sp_MSforeachObject @command1=“sp_changeobjectowner '?', 'dbo'“,@objectType=3
              EXEc sp_MSforeachObject @command1=“sp_changeobjectowner '?', 'dbo'“,@objectType=4

    這樣就非常方便的將每一個數據庫對象改為DBO。

    當然還要很多非常好的功能,大家可以自己深入研究吧。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区在线视频| 国产综合色产在线精品| 日韩激情中文字幕| 蜜臀av性久久久久av蜜臀妖精| 亚洲欧美电影一区二区| 麻豆91精品视频| av福利精品导航| 91在线码无精品| 日韩欧美国产一区二区在线播放| 中文字幕不卡的av| 亚洲精品视频在线观看免费 | 宅男在线国产精品| 久久精品免费在线观看| 洋洋成人永久网站入口| 国产一区二区三区黄视频| 色香色香欲天天天影视综合网| 99久久99久久精品免费观看| 欧美电影在哪看比较好| 亚洲天堂免费在线观看视频| 午夜电影网一区| 成人av网在线| 精品播放一区二区| 亚洲愉拍自拍另类高清精品| 国产成人aaa| 欧美一二三区在线观看| 一区二区三区av电影| 成人综合激情网| 日韩久久久精品| 亚洲一区二区视频在线观看| 高清不卡在线观看| 欧美成人在线直播| 亚洲成人在线观看视频| 99久久国产免费看| 久久精品一区二区三区不卡牛牛| 天堂久久久久va久久久久| 色呦呦日韩精品| 亚洲欧洲中文日韩久久av乱码| 国产盗摄精品一区二区三区在线 | 日韩美女精品在线| 国产在线麻豆精品观看| 欧美一区二区在线视频| 亚洲综合一区二区三区| 91美女视频网站| 中文一区二区在线观看| 国产成人精品亚洲日本在线桃色 | 97精品国产97久久久久久久久久久久| 久久久另类综合| 成人av在线网| 亚洲国产视频网站| 日韩一级完整毛片| 国产成人综合在线播放| 亚洲免费观看高清完整版在线| 欧美视频在线不卡| 麻豆成人久久精品二区三区红| 欧美国产日韩a欧美在线观看| 成人av免费在线| 首页国产欧美久久| 久久欧美中文字幕| 在线精品视频免费观看| 精品一区二区三区在线播放| 国产精品视频第一区| 在线观看视频一区二区欧美日韩| 另类欧美日韩国产在线| 国产精品国产自产拍高清av王其| 欧美探花视频资源| 国产综合色精品一区二区三区| 1024成人网色www| 91精品国产综合久久精品性色| 国产激情91久久精品导航| 亚洲一区二区在线视频| 欧美成人三级在线| 色综合久久88色综合天天| 精品一区二区成人精品| 国产精品色婷婷久久58| 欧美一区二区视频在线观看2020| 国产成人综合网| 免费观看久久久4p| 亚洲最新视频在线播放| 久久久.com| 欧美一区二区三区免费视频| 91在线观看污| 国产一区美女在线| 三级不卡在线观看| 亚洲三级在线免费观看| 久久综合久久综合九色| 欧美喷潮久久久xxxxx| 成人动漫在线一区| 国产精品一区二区果冻传媒| 免费视频最近日韩| 亚洲风情在线资源站| 国产精品国模大尺度视频| 精品盗摄一区二区三区| 欧美一区二区久久久| 欧美性做爰猛烈叫床潮| 成人网页在线观看| 国产在线播放一区| 毛片不卡一区二区| 日韩avvvv在线播放| 亚洲高清视频中文字幕| 一区二区三区丝袜| 国产精品福利在线播放| 国产日韩综合av| 久久新电视剧免费观看| 日韩久久免费av| 精品久久久久香蕉网| 日韩欧美国产麻豆| 91精品国产综合久久久久| 欧美日韩免费电影| 欧美日韩三级视频| 欧美午夜一区二区三区免费大片| 91小视频在线免费看| a美女胸又www黄视频久久| 99久久久无码国产精品| 99精品一区二区| 一本色道亚洲精品aⅴ| 97精品国产露脸对白| 色94色欧美sute亚洲线路一久| 91网上在线视频| 一本久道中文字幕精品亚洲嫩| 91麻豆高清视频| 欧美视频在线一区二区三区| 欧美精品v国产精品v日韩精品 | 91在线视频观看| 91高清视频免费看| 欧美日韩国产综合视频在线观看| 欧美午夜理伦三级在线观看| 欧美日韩视频在线观看一区二区三区| 欧美日韩国产一区二区三区地区| 欧美福利电影网| 欧美www视频| 国产精品欧美一区喷水| 亚洲女同ⅹxx女同tv| 亚洲一区二区三区国产| 免费成人性网站| 极品销魂美女一区二区三区| 国产精品一区二区在线观看网站| 国产经典欧美精品| 色悠久久久久综合欧美99| 7777精品伊人久久久大香线蕉的 | 欧美亚洲综合色| 欧美一二区视频| 国产精品国模大尺度视频| 日韩激情视频网站| 国产精品亚洲视频| 91国偷自产一区二区开放时间| 日韩欧美在线不卡| 综合久久久久综合| 美国欧美日韩国产在线播放| 成人午夜视频在线观看| 欧美日韩亚洲综合在线 | 精品福利一区二区三区| 国产精品久久久久久一区二区三区| 依依成人综合视频| 国产在线精品不卡| 欧美日韩国产综合一区二区三区 | 日韩av在线播放中文字幕| 国产精品亚洲午夜一区二区三区| 欧洲一区在线观看| 国产亚洲成年网址在线观看| 亚洲第一搞黄网站| 9久草视频在线视频精品| 日韩欧美一区在线观看| 亚洲精品视频一区二区| 国产精品99久久久| 3751色影院一区二区三区| 国产精品第一页第二页第三页| 手机精品视频在线观看| 色综合天天综合狠狠| 久久人人爽爽爽人久久久| 日韩精品乱码免费| 日本高清无吗v一区| 国产精品国产三级国产普通话蜜臀| 久久精品二区亚洲w码| 欧美无人高清视频在线观看| 欧美国产日韩亚洲一区| 美美哒免费高清在线观看视频一区二区| 97精品电影院| 中文字幕一区二区三区四区| 国产精品一二三在| 欧美xxxxxxxxx| 爽爽淫人综合网网站| 欧美色国产精品| 亚洲一区二区三区免费视频| 99久久亚洲一区二区三区青草| 久久久精品国产99久久精品芒果| 日日摸夜夜添夜夜添国产精品| 91老司机福利 在线| 亚洲欧洲国产日韩| 成人综合在线观看| 中文字幕乱码日本亚洲一区二区| 狠狠色2019综合网| 久久精品亚洲精品国产欧美| 精品一区二区影视| 久久综合av免费| 国内偷窥港台综合视频在线播放| 精品久久久影院| 国产乱国产乱300精品| 久久久不卡影院| 国产成人av自拍| 中文字幕亚洲一区二区av在线|