• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            We do not always find visible happiness in proportion to visible virtue

            夢幻白樺林

            SHARE

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              14 Posts :: 58 Stories :: 62 Comments :: 0 Trackbacks

            公告

            常用鏈接

            留言簿(5)

            搜索

            •  

            最新隨筆

            最新評論

            閱讀排行榜

            平時我們操作比較多的都是表里的數據,也許突然有一天會需要把所有表的名字都列出來看一看——比如,你的論壇是按每個版塊一個表來管理的,這時候你要在首頁列出各版塊的名字。應該怎么辦呢?

            肯定得用SELECT吧……但我們平時使用SELECT操作的數據都是表里的數據,表的名字并不是表的數據,這可怎么辦呢?

            你可能會想:“功能強大的SQL Server不會連這么簡單的功能都實現不了吧?一定會把所有表的名字存儲在某個表里……”注意啦!在這兒我要小小地偷換一下概念了——視圖(View)也算是一種“表”,只不過它是由固定查詢形成的一種“虛擬表”。

            OK,你猜對啦!由SQL Server管理的每個數據庫里都有一個名為sysobjects的視圖,它是system級別的,所以它的全限定名是——sys.sysobjects

            你可能又會問:“為什么不是sys.tables而是sys.objects呢?”問的好!因為這張表里存儲的可不光是數據庫里的表,它存儲的是一個數據庫中所有的“對象”——雜七雜八包括了表的主鍵、存儲過程、觸發器等等,一共是24種——表(Table,確切地說是“用戶自定義表”)只是這24種對象中的一種。

            剩下的事情……吼吼……

            執行下面的查詢語句,可以得到所有包含在sys.sysobjects視圖里的數據

            USE AdventureWorks
            SELECT *
            FROM sys.sysobjects
            GO

            得出數據后,請注意名為type的列——這一列標明了對象的類型,也就是前面提到的24種。在這里,我用一個表格把它們列出來:

            AF = Aggregate function (CLR)
            C = CHECK constraint
            D = DEFAULT (constraint or stand-alone)
            F = FOREIGN KEY constraint
            FN = SQL scalar function
            FS = Assembly (CLR) scalar function
            FT = Assembly (CLR) table-valued function
            IF = SQL inline table-valued function
            IT = Internal table
            P = SQL stored procedure
            PC = Assembly (CLR) stored procedure
            PK = PRIMARY KEY constraint
            R = Rule (old-style, stand-alone)
            RF = Replication-filter-procedure
            S = System base table
            SN = Synonym
            SQ = Service queue
            TA = Assembly (CLR) DML trigger
            TF = SQL table-valued-function
            TR = SQL DML trigger
            U = Table (user-defined)
            UQ = UNIQUE constraint
            V = View
            X = Extended stored procedure

            OK,我們要得到名稱的表(用戶自定義表)就是類型為“U”的對象;而sys.objects的類型為“S”。所以,為了達到我們的最終目的,SQL語句應該是——

            USE AdventureWorks
            SELECT name
            FROM sys.sysobjects
            WHERE type='U'
            GO

             

             下面我再給出一段用C#實現的代碼:

              

            *
             1//========<水之真諦>========//
             2//====<以人為本,關注民生>====//
             3//   http://blog.csdn.net/FantasiaX   //
             4using System;
             5using System.Data.SqlClient;
             6
             7namespace SqlSample
             8{
             9         class Program
            10         {
            11                   static void Main(string[] args)
            12                   {
            13                            string connectionString = @"Server=(local); Database=AdventureWorks; User ID=sa; Password=password";
            14                            SqlConnection connection = new SqlConnection();
            15                            connection.ConnectionString = connectionString;
            16
            17                            string sqlCommandString = @"USE AdventureWorks SELECT name FROM sys.sysobjects WHERE type='U' ORDER BY name";
            18                            SqlCommand command = new SqlCommand();
            19                            command.CommandType = System.Data.CommandType.Text;
            20                            command.CommandText = sqlCommandString;
            21                            command.Connection = connection;
            22                            connection.Open();
            23
            24                            SqlDataReader reader = command.ExecuteReader();
            25                            while (reader.Read())
            26                            {
            27                                     Console.WriteLine(reader[@"name"]);
            28                            }

            29                   }

            30         }

            31}

            32


            運行后得到的截圖是:
             
              
            posted on 2007-08-24 09:34 colys 閱讀(793) 評論(0)  編輯 收藏 引用 所屬分類: C#.Net

            欧美精品国产综合久久| 办公室久久精品| 久久久久高潮综合影院| 亚洲精品美女久久777777| 热re99久久精品国99热| 99热精品久久只有精品| 久久天天婷婷五月俺也去| 国产精品久久永久免费| 2019久久久高清456| 97久久久久人妻精品专区| 久久久久这里只有精品| 国产精品久久久久久久久| 天天影视色香欲综合久久| 久久亚洲AV成人出白浆无码国产| 国产精自产拍久久久久久蜜| 久久夜色精品国产噜噜噜亚洲AV| 久久精品国产72国产精福利| 国产亚洲精品美女久久久| 久久人人爽人人爽人人片AV不| 秋霞久久国产精品电影院| 精品久久久无码人妻中文字幕| 久久天天躁狠狠躁夜夜2020老熟妇| 久久精品人人做人人爽电影蜜月 | 国产精品狼人久久久久影院| 久久精品国产欧美日韩99热| 国产一区二区三精品久久久无广告 | 亚洲欧美成人综合久久久 | 久久福利青草精品资源站免费| 伊人精品久久久久7777| 久久久国产精品| 国产一区二区精品久久凹凸| 9999国产精品欧美久久久久久| 国产亚洲精久久久久久无码| 青草国产精品久久久久久| 漂亮人妻被黑人久久精品| 亚洲中文字幕无码久久2017| 久久久无码精品亚洲日韩京东传媒| 欧美精品福利视频一区二区三区久久久精品 | 中文国产成人精品久久不卡| 国产精品久久久久久五月尺| 超级碰碰碰碰97久久久久|