• <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精品国产麻豆宅宅| 久久精品国产第一区二区| 国内精品久久久久久麻豆| 亚洲精品tv久久久久| 99蜜桃臀久久久欧美精品网站| 7777久久亚洲中文字幕| 久久久久久A亚洲欧洲AV冫| 久久精品一区二区三区AV| 久久久国产精品网站| 久久精品一本到99热免费| 久久青草国产精品一区| 久久中文字幕人妻熟av女| 丰满少妇人妻久久久久久| 伊人久久五月天| 97久久久久人妻精品专区| 亚洲午夜无码久久久久小说| 久久亚洲精品成人AV| 久久一区二区免费播放| 久久99精品久久久久子伦| 亚洲人成无码www久久久| 久久99久久99小草精品免视看| 热99RE久久精品这里都是精品免费| 99久久99这里只有免费的精品| 国产精品久久久香蕉| 久久精品成人免费国产片小草| 精品久久一区二区三区| 亚洲中文字幕无码久久综合网| 日韩电影久久久被窝网| AAA级久久久精品无码区| 久久99热精品| 亚洲国产精品久久久久网站| 97久久精品人妻人人搡人人玩| 少妇高潮惨叫久久久久久| 99久久综合国产精品免费| 亚洲欧美国产精品专区久久| 久久国产精品无码网站| 久久精品国产亚洲5555| 久久久久亚洲av成人无码电影| 国产精品久久久天天影视香蕉| 亚洲欧美精品伊人久久|