<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    啪啪拉拉噼里啪啦

    初學者天堂資料匯集

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      16 隨筆 :: 73 文章 :: 16 評論 :: 0 Trackbacks
    主站首頁  視頻下載  書籍下載  軟件下載  論壇交流  虛擬主機  站內搜索  網站地圖  網站律師  廣告合作
      豆豆首頁 - 在線教程 - 數 據 庫 - Mssql - 基礎教程 最大的中文IT資源網
       
    字符串函數(二)
    作者:unknown 更新時間:2005-03-17  
     


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

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

      例4-77: 測試當前應用程序是否為SQL Server Query Analyzer


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

    CASE
    WHEN (expression1 IS NOT NULL) THEN expression1

    WHEN (expressionN IS NOT NULL) THEN expression
    ELSE NULL

      例4-78:


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

      例4-79:


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

      例4-80:



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

      例4-81:


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

      例4-82:



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

      例4-83:


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

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

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

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

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

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

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

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

    運行結果如下:
    XUJIN

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

    其中:
    data_type 指定數據類型.data type 是INTEGER 或DECIMAL 類的數據類型.Seed指定identity column 的初值,即第一個值.Increment 指定增加一個記錄時,記錄的identity column 值應在前記錄的基礎上增加的值.seed 和increment 的缺省值為1.column_name 是所插入的identity column 的列名.雖然AS column_name 為可選項,但由于函數在表中插入了一個新列,所以必須指定列名.如果不使用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
    有關identity column 的信息,請參見"管理數據庫表"中的"列屬性"章節(jié).

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

      例4-88:


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

      例4-89:


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

     例4-90:



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

      例4-91:



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

    提醒:reaplacement_value的數據類型應與chech_expresssion一致.

      例4-92:


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

    提醒:檢查MONEY型數據時,應先用CONVERT()函數將其轉換為數值型或字符型。

      例4-93:



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

      例4-94:


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

      例4-95:


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

      例4-96:


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

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

      例4-97:


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

      例4-98:


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

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

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

      例4-99:


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

      例4-100:


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

      例4-101:


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

      例4-102:


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

      例4-103:


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

      例4-104:


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

      例4-105:



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

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

      例4-106:


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

      例4-107:


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

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

      例4-108:


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

      例4-109:


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

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

     
    上一篇      目錄      下一篇
    來源:unknown
    加入收藏 | 我要投稿 | 我要打印 | 我有疑問 | 錯誤報告| 關閉窗口
     
    本站相關教程
    企業(yè)管理器的環(huán)境
    啟動與關閉服務器
    注冊服務器
    連接與斷開服務器
    sql 服務器配置
    對象的SQL 腳本
    調用SQL Server 工具和向導
    企業(yè)管理器的常見用途
    網絡相關鏈接
    暫時未有相關文章
     
     
     
    posted on 2005-04-07 14:07 噼里啪啦的世界 閱讀(259) 評論(0)  編輯  收藏 所屬分類: 數據庫
    主站蜘蛛池模板: 亚洲v高清理论电影| 又黄又爽无遮挡免费视频| 国产亚洲精品a在线无码| 一级人做人爰a全过程免费视频| 香蕉视频在线观看免费国产婷婷| 亚洲日日做天天做日日谢| 毛片免费观看网站| 亚洲精品无码久久久久秋霞| 亚洲精品亚洲人成在线观看麻豆 | 又粗又硬免费毛片| 亚洲AV日韩AV无码污污网站| 日本高清免费不卡视频| 久久精品国产亚洲AV天海翼| 国产性生交xxxxx免费| 亚洲AV色香蕉一区二区| APP在线免费观看视频| 久久久久亚洲AV片无码下载蜜桃| 免费无码毛片一区二区APP| 成人永久福利免费观看| 青娱乐在线免费观看视频| 国产a v无码专区亚洲av| 久久嫩草影院免费看夜色| 久久久久亚洲AV片无码| 免费在线观看视频网站| 亚洲AV无码一区二区三区鸳鸯影院| 免费乱理伦在线播放| 中文字幕无码免费久久| 亚洲老熟女@TubeumTV| 好男人视频社区精品免费| 黄色一级视频免费| 久久精品国产亚洲av麻豆| 波多野结衣在线免费观看| 亚洲av成人一区二区三区观看在线 | 久久99九九国产免费看小说| 亚洲一线产品二线产品| 亚洲国产成人五月综合网| 你懂的免费在线观看网站| 亚洲乱色熟女一区二区三区蜜臀| 亚洲成人国产精品| 毛片免费全部播放无码 | www成人免费视频|