• <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ì)連這么簡(jiǎn)單的功能都實(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 閱讀(810) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C#.Net

            久久伊人精品一区二区三区| 久久中文娱乐网| 伊人久久综合无码成人网| 久久久噜噜噜www成人网| 国产精品一久久香蕉国产线看| 大香网伊人久久综合网2020| 狠狠色丁香久久婷婷综合_中 | 伊人久久无码精品中文字幕| 少妇久久久久久被弄高潮| 国产精品热久久无码av| 国产毛片欧美毛片久久久| 国内精品久久久久久麻豆| 日韩精品久久无码人妻中文字幕| 99久久婷婷国产综合精品草原| 中文字幕久久久久人妻| 久久久精品日本一区二区三区| 久久婷婷激情综合色综合俺也去 | 久久精品国产亚洲AV久| 99久久精品免费看国产免费| 热re99久久精品国99热| 亚洲精品乱码久久久久久不卡| 久久精品国产影库免费看 | 久久综合色老色| 激情久久久久久久久久| 91麻精品国产91久久久久| 久久精品99久久香蕉国产色戒| 香蕉久久夜色精品国产2020| 亚洲国产精品狼友中文久久久 | 久久亚洲视频| 精品久久久久久久久久中文字幕| 国产精品久久久久无码av| 乱亲女H秽乱长久久久| 人妻久久久一区二区三区| 久久亚洲中文字幕精品有坂深雪| 久久精品国产男包| 国内精品人妻无码久久久影院导航 | 亚洲精品tv久久久久久久久 | 97久久超碰国产精品旧版| 精品无码久久久久久尤物| 久久久久久久97| 久久久久久狠狠丁香|