• <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

            夢(mèng)幻白樺林

            SHARE

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

            公告

            常用鏈接

            留言簿(5)

            搜索

            •  

            最新隨筆

            最新評(píng)論

            閱讀排行榜

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

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

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

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

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

            剩下的事情……吼吼……

            執(zhí)行下面的查詢語句,可以得到所有包含在sys.sysobjects視圖里的數(shù)據(jù)

            USE AdventureWorks
            SELECT *
            FROM sys.sysobjects
            GO

            得出數(shù)據(jù)后,請(qǐng)注意名為type的列——這一列標(biāo)明了對(duì)象的類型,也就是前面提到的24種。在這里,我用一個(gè)表格把它們列出來:

            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”的對(duì)象;而sys.objects的類型為“S”。所以,為了達(dá)到我們的最終目的,SQL語句應(yīng)該是——

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

             

             下面我再給出一段用C#實(shí)現(xiàn)的代碼:

              

            *
             1//========<水之真諦>========//
             2//====<以人為本,關(guān)注民生>====//
             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


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

            久久久综合香蕉尹人综合网| 久久电影网一区| 99久久做夜夜爱天天做精品| 狠狠综合久久AV一区二区三区| 久久亚洲国产成人精品性色| 精品久久人人妻人人做精品| 久久久精品国产| 伊人色综合久久天天| 久久久久久精品免费看SSS| 99久久精品日本一区二区免费| 精品久久久久国产免费| 久久久久久精品无码人妻| 国内精品久久久久久久涩爱| 无码精品久久久天天影视| 久久久久国色AV免费看图片| 精品久久久久久无码专区| 亚洲欧美日韩久久精品| 亚洲精品高清久久| 99久久777色| 无码精品久久久天天影视| 香蕉久久夜色精品国产尤物| 精品人妻伦一二三区久久 | 久久精品成人| 嫩草伊人久久精品少妇AV| 色天使久久综合网天天| 久久精品女人天堂AV麻| 精品国产乱码久久久久久郑州公司 | 久久国产精品-久久精品| 久久久久久久波多野结衣高潮| 国产精品日韩深夜福利久久 | 久久国产劲爆AV内射—百度| 久久久久无码精品| 久久国产成人| 久久精品中文字幕一区| 国产真实乱对白精彩久久| 久久精品国产99久久香蕉| 久久精品亚洲福利| 亚洲人AV永久一区二区三区久久| 亚洲人成无码久久电影网站| 亚洲精品无码成人片久久| 热re99久久6国产精品免费|