• <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 閱讀(794) 評論(0)  編輯 收藏 引用 所屬分類: C#.Net

            国产99久久久久久免费看| 波多野结衣久久| 久久精品国产亚洲AV嫖农村妇女| 久久综合偷偷噜噜噜色| 国产精品久久久久久一区二区三区| 久久精品成人免费网站| 亚洲乱码日产精品a级毛片久久| 久久综合给合久久狠狠狠97色69| 国产免费久久久久久无码| 人妻无码αv中文字幕久久琪琪布| 亚洲中文字幕无码一久久区| 久久伊人中文无码| 久久青青草原精品影院| 精品亚洲综合久久中文字幕| 人妻精品久久久久中文字幕| 午夜不卡888久久| 97久久超碰国产精品旧版| 欧美久久久久久午夜精品| 久久精品国产亚洲av高清漫画| 久久无码国产| 94久久国产乱子伦精品免费 | 国产精品久久久久久| 久久久综合香蕉尹人综合网| 久久91精品国产91久久麻豆| 久久国产欧美日韩精品| 伊人久久大香线蕉综合5g| 国内精品久久久久久99| 91精品国产91久久综合| 久久天天躁夜夜躁狠狠| 欧美一级久久久久久久大| 国产一区二区三区久久精品| 99久久er这里只有精品18| 亚洲AV日韩精品久久久久久久| 亚洲狠狠婷婷综合久久久久| 综合久久一区二区三区 | 国产偷久久久精品专区| 欧美色综合久久久久久| 久久综合色区| 久久人做人爽一区二区三区| 精品国产乱码久久久久久人妻| 久久精品成人欧美大片|