乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      SQL Server 2000基礎(chǔ)教程——字符串函數(shù)(二)

       Long_way 2007-08-22

      SQL Server 2000基礎(chǔ)教程——字符串函數(shù)(二)- -

                                            

      8、系統(tǒng)函數(shù)
      系統(tǒng)函數(shù)用于獲取有關(guān)計算機系統(tǒng)、用戶、數(shù)據(jù)庫和數(shù)據(jù)庫對象的信息。系統(tǒng)函數(shù)可以讓用戶在得到信息后,使用條件語句,根據(jù)返回的信息進行不同的操作。與其它函數(shù)一樣,可以在SELECT 語句的SELECT 和WHERE 子句以及表達式中使用系統(tǒng)函數(shù)。

      ·APP_NAME()
      APP_NAME() 函數(shù)語法如下:
       APP_NAME()
      APP_NAME() 函數(shù)返回當(dāng)前執(zhí)行的應(yīng)用程序的名稱。其返回值類型為nvarchar (128)。

        例4-77: 測試當(dāng)前應(yīng)用程序是否為SQL Server Query Analyzer


      ·COALESCE()
      COALESCE() 函數(shù)語法如下:
      COALESCE (<expression> [, ...n])
      COALESCE() 函數(shù)返回眾多表達式中第一個非NULL 表達式的值。如果所有的表達式均為NULL, 則COALESCE() 函數(shù)返回NULL 值。COALESCE() 函數(shù)等效于下面的CASE 語句:

      CASE
      WHEN (expression1 IS NOT NULL) THEN expression1

      WHEN (expressionN IS NOT NULL) THEN expression
      ELSE NULL

        例4-78:


      ·COL_LENGTH()
      COL_LENGTH() 函數(shù)語法如下:
       COL_LENGTH (<‘table_name‘>, <‘column_name‘>)
      COL_LENGTH() 函數(shù)返回表中指定字段的長度值。其返回值為INT 類型。

        例4-79:


      ·COL_NAME()
      COL_NAME() 函數(shù)語法如下:
       COL_NAME (<table_id>, <column_id>)
      COL_NAME() 函數(shù)返回表中指定字段的名稱,即列名。其返回值為SYSNAME 類型。其中table_id 和column_id 都是INT 類型的數(shù)據(jù),函數(shù)用table_id 和column_id 參數(shù)來生成列名字符串。關(guān)于如何獲得table_id 和column_id, 請參見OBJECT_ID() 函數(shù)。

        例4-80:



      ·DATALENGTH()
      DATALENGTH() 函數(shù)語法如下:
      DATALENGTH (<expression>)
      DATALENGTH() 函數(shù)返回數(shù)據(jù)表達式的數(shù)據(jù)的實際長度。其返回值類型為INT。DATALENGTH() 函數(shù)對VARCHAR、 VARBINARY、 TEXT、 IMAGE、 NVARCHAR和NTEX 等能存儲變動長度數(shù)據(jù)的數(shù)據(jù)類型特別實用。NULL 的長度為NULL。

        例4-81:


      · DB_ID()
      DB_ID() 函數(shù)語法如下:
      DB_ID ([‘database_name‘])
      DB_ID() 函數(shù)返回數(shù)據(jù)庫的編號。其返回值為SMALLINT 類型。如果沒有指定database_name, 則返回當(dāng)前數(shù)據(jù)庫的編號。

        例4-82:



      ·DB_NAME()
      DB_NAME() 函數(shù)語法如下:
      DB_NAME (database_id)
      DB_NAME() 函數(shù)返回數(shù)據(jù)庫的名稱.其返回值類型為NVARCHAR (128). database_id是SMALLINT 類型的數(shù)據(jù).如果沒有指定database_id, 則返回當(dāng)前數(shù)據(jù)庫的名稱.

        例4-83:


      · FORMATMESSAGE()
      FORMATMESSAGE() 函數(shù)語法如下:
       FORMATMESSAGE (<message_number>, <param_value>[, ...n])
      FORMATMESSAGE() 函數(shù)用于從系統(tǒng)信息表sysmessages 中挑選一條現(xiàn)存的信息,
      再將其格式轉(zhuǎn)換為用戶需要的形式.其功能類似于RAISERROR 命令,不同的是RAISERROR命令立即打印出信息,而FORMATMESSAGE() 函數(shù)返回編輯過的信息給調(diào)用它的程序.其返回值類型為NVARCHAR.
      其中message_number 是存儲在sysmessages 系統(tǒng)表中的信息ID 號.param_value 是在信息中使用的參數(shù).最多可使用20 個參數(shù).
      FORMATMESSAGE() 函數(shù)查找使用當(dāng)前語言平臺語言的信息,如果沒有本地語言的信息,則使用U.S. English 版本語言的信息.

        例4-84: 假定有一個編號為10001 的信息存儲在sysmessages 表中,此信息的內(nèi)容為"The Length of rows %column_name in %table_name is %column_num.".FORMATMESSAGE() 函數(shù)用值myColumn、 myTable 和20 分別替代上述參數(shù)值,將結(jié)果存儲在變量@test1 中.程序如下:
      declare @test1 varchar (100)
      select @test1 = formatmessage (10001, ‘myColumn‘, ‘myTable‘, 20)

      ·GETANSINULL()
      GETANSINULL() 函數(shù)語法如下:
       GETANSINULL() ([‘database_name‘])
      GETANSINULL() 函數(shù)返回當(dāng)前數(shù)據(jù)庫默認的NULL 值.其返回值類型為INT.GETANSINULL() 函數(shù)對ANSI 空值NULL 返回1; 如果沒有定義ANSI 空值,則返回0.

        例4-85:
      select getansinull (‘pangu‘)
      運行結(jié)果如下:
      ------
      1

      ·HOST_ID()
      HOST_ID() 函數(shù)語法如下:
       HOST_ID()
      HOST_ID() 函數(shù)返回服務(wù)器端計算機的名稱.其返回值類型為NCHAR.

        例4-86:
      declare @hostID char (8)
      select @hostID = host_id()
      print @hostID
      運行結(jié)果如下:
      -606771

      ·HOST_NAME()
      HOST_NAME() 函數(shù)語法如下:
       HOST_NAME()
      HOST_NAME() 函數(shù)返回服務(wù)器端計算機的名稱.其返回值類型為CHAR (8).

      例4-87:
      declare @hostNAME nchar (20)
      select @hostNAME = host_name()
      print @hostNAME

      運行結(jié)果如下:
      XUJIN

      ·IDENTITY()
      IDENTITY() 函數(shù)語法如下:
      IDENTITY (<data_type>[, seed, increment]) [AS column_name])
      IDENTITY() 函數(shù)只在SELECT...INTO 語句中使用,用于插入一個identity column列到新表中.其返回值類型與data_type 的類型相同.

      其中:
      data_type 指定數(shù)據(jù)類型.data type 是INTEGER 或DECIMAL 類的數(shù)據(jù)類型.Seed指定identity column 的初值,即第一個值.Increment 指定增加一個記錄時,記錄的identity column 值應(yīng)在前記錄的基礎(chǔ)上增加的值.seed 和increment 的缺省值為1.column_name 是所插入的identity column 的列名.雖然AS column_name 為可選項,但由于函數(shù)在表中插入了一個新列,所以必須指定列名.如果不使用AS column_name 選項,可以使用以下兩種方式來指定列名:
      (1) select identity (int, 1, 1) as column_name
      into newtable
      from oldtable
      (2) select column_name = identity (int, 1, 1)
      into newtable
      from oldtable
      有關(guān)identity column 的信息,請參見"管理數(shù)據(jù)庫表"中的"列屬性"章節(jié).

      ·IDENT_INCR()
      IDENT_INCR() 函數(shù)語法如下:
       IDENT_INCR (‘table_or_view‘)
      IDENT_INCR() 函數(shù)返回表中標(biāo)識性字段identity column 的增量.若無此字段,則返回NULL 值.其返回值類型為NUMERIC.

        例4-88:


      ·IDENT_SEED()
      IDENT_SEED() 函數(shù)語法如下:
      IDENT_SEED (<‘table_or_view‘>)
      IDENT_SEED() 函數(shù)返回表中標(biāo)識性字段identity column 的初值.若無此字段,則返回NULL 值.其返回值類型為NUMERIC.

        例4-89:


      ·INDEX_COL()
      INDEX_COL() 函數(shù)語法如下:
      INDEX_COL (<‘table_name‘>, <index_id>, <key_id>)
      INDEX_COL() 函數(shù)返回表內(nèi)索引識別碼為index_id 的索引的名稱,并找出組成該索引的列組合中第key_id 個列名.其返回值類型為NCHAR.

       例4-90:



      ·ISDATE()
      ISDATE() 函數(shù)語法如下:
      ISDATE (<expression>)
      ISDATE() 函數(shù)判斷所給定的表達式是否為合理日期,如果是則返回1, 不是則返回0.

        例4-91:



      ·ISNULL()
      ISNULL() 函數(shù)語法如下:
      ISNULL (<check_expression>, <replacement_value>)
      ISNULL() 函數(shù)將表達式中的NULL 值用指定值替換.如果check_expresssion 不是NULL, 則返回其原來的值,否則,返回replacement_value 的值.

      提醒:reaplacement_value的數(shù)據(jù)類型應(yīng)與chech_expresssion一致.

        例4-92:


      ·ISNUMERIC()
      ISNUMERIC() 函數(shù)語法如下:
       ISNUMERIC (<expression>)
      ISNUMERIC() 函數(shù)判斷所給定的表達式是否為合理的數(shù)值(INTEGER、 FLOATING POINT NUMBER、 MONEY 或DECIMAL 類型),如果是則返回1, 不是則返回0.

      提醒:檢查MONEY型數(shù)據(jù)時,應(yīng)先用CONVERT()函數(shù)將其轉(zhuǎn)換為數(shù)值型或字符型。

        例4-93:



      ·NEWID
      NEWID() 函數(shù)語法如下:
       NEWID()
      NEWID() 函數(shù)返回一個UNIQUEIDENTIFIER 類型的數(shù)值.此函數(shù)使用計算機的網(wǎng)卡的Ethernet 地址加上經(jīng)由CPU Clock 產(chǎn)生的數(shù)字而得到其返回值.由于網(wǎng)卡的Ethernet地址是全球惟一的(在未來近一百年內(nèi)不會生產(chǎn)出相同Ethernet 地址的網(wǎng)卡),因而函數(shù)所產(chǎn)生的數(shù)字也是惟一的.

        例4-94:


      ·NULLIF()
      NULLIF() 函數(shù)語法如下:
       NULLIF (<expression1>, <expression2>)
      NULLIF() 函數(shù)在expression1 與expression2 相等時返回NULL 值,若不相等時則返回expression1 的值.其返回值類型與expression1 相同.expression1 與expression2 應(yīng)為同類的數(shù)據(jù)類型.

        例4-95:


      ·OBJECT_ID()
      OBJECT_ID() 函數(shù)語法如下:
       OBJECT_ID (<‘object_name‘>)
      OBJECT_ID() 函數(shù)返回數(shù)據(jù)庫對象的編號.其返回值類型為INT.

        例4-96:


      提醒:當(dāng)指定一個臨時表的表名時,其表名的前面必須加上臨時數(shù)據(jù)庫名"tempdb",如:select object_id("tempdb..#mytemptable").

      ·OBJECT_NAME()
      OBJECT_NAME() 函數(shù)語法如下:
       OBJECT_NAME (<object_id>)
      OBJECT_NAME() 函數(shù)返回數(shù)據(jù)庫對象的名稱.其返回值類型為NCHAR.

        例4-97:


      ·PARSENAME()
      PARSENAME() 函數(shù)語法如下:
       PARSENAME (<‘object_name ‘>, <object_piece>)
      PARSENAME() 函數(shù)返回一個數(shù)據(jù)庫對象完整名稱中的特定部分(對象名稱或數(shù)據(jù)庫擁有者名稱或數(shù)據(jù)庫名稱或服務(wù)器名稱).其返回值類型為NCHAR.
       其中object_piece 為INT 類型,其取值如下:
        對象名稱Object name;
        數(shù)據(jù)庫擁有者名稱Owner name;
        數(shù)據(jù)庫名稱Database name;
        服務(wù)器名稱Server name.
       如果object_name 或object_piece 為NULL, 則返回NULL 值.

        例4-98:


      ·PERMISSIONS()
      PERMISSIONS() 函數(shù)語法如下:
       PERMISSIONS ([object_id [, ‘column_name‘]])
      PERMISSIONS() 函數(shù)用于獲取當(dāng)前用戶對某一對象的存取權(quán)限或?qū)δ骋幻畹膱?zhí)行權(quán)限.其返回值為一個32 位的bitmap 值,其中低16 位表示目前用戶對象的存取權(quán)限設(shè)定值.高16 位表示用戶是否可以開放此對象的權(quán)限給其它人.
      如果不指定object_id, 則函數(shù)返回目前用戶的命令執(zhí)行權(quán)限的bitmap 值.使用column_name 選項可以得到表的列權(quán)限.各權(quán)限值見表4-10 至4-12.

       有關(guān)PERMISSIONS() 函數(shù)使用方法,我們將在以后的章節(jié)分別講述.

      ·STATS_DATE()
      STATS_DATE() 函數(shù)語法如下:
       STATS_DATE (<table_id>, <index_id>)
      STATS_DATE() 函數(shù)返回最新的索引統(tǒng)計日期.其返回值類型為DATETIME.

        例4-99:


      ·SUSER_SID()
      SUSER_ SID() 函數(shù)語法如下:
       SUSER_SID ([‘login_name‘])
      SUSER_SID() 函數(shù)根據(jù)用戶登錄名返回用戶的SID (Security Identification Number,安全帳戶名)號.其返回值類型為INT. 如果不指定login_name, 則返回當(dāng)前用戶的SID號.

        例4-100:


      ·SUSER_SNAME()
      SUSER_SNAME() 函數(shù)語法如下:
       SUSER_SNAME ([server_user_sid])
      SUSER_SNAME() 函數(shù)根據(jù)SID 號返回用戶的登錄名.如果沒有指定server_user_sid,則返回當(dāng)前用戶的登錄名.其返回值類型為NCHAR.

        例4-101:


      ·USER_ID()
      USER_ID() 函數(shù)語法如下:
       USER_ID ([‘user_name‘])
      USER_ID() 函數(shù)根據(jù)用戶數(shù)據(jù)庫的用戶名返回用戶的數(shù)據(jù)庫ID 號.其返回值類型為INT. 如果沒有指定user_name, 則返回當(dāng)前用戶的數(shù)據(jù)庫ID 號.

        例4-102:


      ·USER_NAME()
      USER_NAME() 函數(shù)語法如下:
       USER_NAME ([user_id])
      USER_NAME() 函數(shù)根據(jù)用戶的數(shù)據(jù)庫ID 號返回用戶的數(shù)據(jù)庫用戶名.其返回值類型為NCHAR. 如果沒有指定user_id, 則返回當(dāng)前數(shù)據(jù)庫的用戶名.

        例4-103:


      9、TEXT 和IMAGE 函數(shù)
      ·TEXTPTR()
      TEXTPTR() 函數(shù)語法如下:
       TEXTPTR (<column>)
      TEXTPTR() 函數(shù)返回一個指向存儲文本的第一個數(shù)據(jù)庫頁的指針.其返回值是一個VARBINARY (16) 類型的二進制字符串.如果數(shù)據(jù)類型為TEXT、 NTEXT 或IMAGE的列沒有賦予初值,則TEXTPTR() 函數(shù)返回一個NULL 指針.

        例4-104:


      ·TEXTVALID()
      TEXTVALID() 函數(shù)語法如下:
       TEXTVALID (<‘table.column‘>, <text_ pointer>)
      TEXTVALID() 函數(shù)用于檢查指定的文本指針是否有效.如果有效,則返回1; 無效,則返回0. 如果列未賦予初值,則返回NULL 值.

        例4-105:



      10、NILADIC 函數(shù)
      NILADIC 函數(shù)返回一個用戶或時間戳值.這類函數(shù)均不帶參數(shù).NILADIC 函數(shù)經(jīng)常被定義為CREATE 或ALERT TABLE 語句中DEFAULT 約束的一部分,可參見"管理數(shù)據(jù)庫表"章節(jié).主要的NILADIC 函數(shù)如下:

      ·CURRENT_TIMESTAMP
      CURRENT_TIMESTAMP 函數(shù)語法如下:
       CURRENT_TIMESTAMP
      CURRENT_TIMESTAMP 函數(shù)返回當(dāng)前的日期和時間,等同于GETDATE() 函數(shù).返回值類型為DATETIME.

        例4-106:


      ·CURRENT_USER
      CURRENT_USER 函數(shù)語法如下:
       CURRENT_USER
      CURRENT_USER 函數(shù)與USER_NAME() 函數(shù)功能相同,返回當(dāng)前用戶的數(shù)據(jù)庫用戶名.返回值類型為SYSNAME.

        例4-107:


      ·SESSION_USER
      SESSION_USER 函數(shù)語法如下:
       SESSION_USER
      SESSION_USER 函數(shù)等同于USER_NAME() 函數(shù),返回當(dāng)前用戶的數(shù)據(jù)庫用戶名.返回值類型為NCHAR.

      ·SYSTEM_USER
      SYSTEM_USER 函數(shù)語法如下:
       SYSTEM_USER
      SYSTEM_USER 返回當(dāng)前系統(tǒng)的用戶名.如果用戶是以Windows NT 認證方式登錄SQL Server 的,則會返回Windows NT 的登錄名;如果用戶是以SQL Server 認證方式登錄的,則返回SQL Server 中的用戶名.

        例4-108:


      ·USER
      USER 函數(shù)語法如下:
       USER
      USER 與系統(tǒng)函數(shù)USER_NAME() 的功能相同,返回當(dāng)前用戶的數(shù)據(jù)庫用戶名.返回值類型為CHAR.

        例4-109:


      11、用戶自定義函數(shù)
      從SQL Server 2000 開始,用戶可以自定義函數(shù)了.在SQL Server 2000 中用戶自定義函數(shù)是作為一個數(shù)據(jù)庫對象來管理的,可以使用企業(yè)管理器(Enterprise Manager) 或Transact-SQL 命令來創(chuàng)建、修改、刪除.其具體方法請參見第13 章"游標(biāo)、視圖和自定義函數(shù)".

      本章介紹了Transact-SQL 語言的基本概念,及其使用方法.Transact-SQL 語言需要大量的實踐,才能熟練運用.本章及以后的SQL 語法基本上都是標(biāo)準(zhǔn)的ANSI SQL 兼容語法,在其它數(shù)據(jù)庫中,如ORACLE、 SYBASE、 INFORMIX、 FOXPRO 等,大部分語句均可套用.

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多