您的位置:首頁技術文章
文章詳情頁

SQL Server系統函數介紹

瀏覽:56日期:2023-03-06 14:25:21

一、常用函數:

  • APP_NAME: 返回當前會話的應用程序名稱(如果應用程序進行了設置)。
SELECT APP_NAME()
  • COALESCE: 返回其參數中第一個非空表達式
SELECT COALESCE(NULL,NULL,123,NULL)
  • COL_LENGTH(table,column):返回table表中column字段的長度;
SELECT COL_LENGTH("person","gender"),COL_LENGTH("person","FirstName");
  • COL_NAME(TABLE_ID,COLUMN_ID):返回指定表中指定字段的名稱;
SELECT COL_NAME(OBJECT_ID("person"),1);---返回person表中第1個字段的名稱;
  • COLLATIONPROPERTY: 返回給定排序規則的屬性
  • CURRENT_TIMESTAMP: 返回當前的日期和時間。此函數等價于 GETDATE()
  • CURRENT_USER: 返回當前的用戶。

此函數等價于 USER_NAME()

SELECT CURRENT_USER
  • DATALENGTH(x): 返回字段x的數據的實際長度,即字節數,NULL的長度為NULL;
SELECT DATALENGTH("id"),DATALENGTH("Gender") FROM person WHERE id=2;
  • @@ERROR: 返回最后執行的 Transact-SQL 語句的錯誤代碼
  • fn_helpcollations: 返回 Microsoft® SQL Server™ 2000 支持的所有排序規則的列表。
  • fn_servershareddrives: 返回由群集服務器使用的共享驅動器名稱
  • fn_virtualfilestats: 返回對數據庫文件(包括日志文件)的 I/O 統計
  • FORMATMESSAGE: 從 sysmessages 現有的消息構造消息。

FORMATMESSAGE 與 RAISERROR 語句的功能相似;但 RAISERROR 立即輸出消息而 FORMATMESSAGE: 返回編輯后的信息供進一步處理

  • GETANSINULL: 返回會話的數據庫的默認為空性。

該函數對ANSI空值NULL返回1,如果沒有定義ANSI空值NULL,則返回0;

SELECT GETANSINULL("test2"),GETANSINULL("person"); ---test2是數據庫,person是數據表;
  • HOST_ID: 返回工作站標識號。

返回值類型為CHAR(10);

SELECT HOST_ID(); ? --使用該函數可以記錄那些想數據表中插入數據的計算機終端的ID;
  • HOST_NAME: 返回工作站名稱。
SELECT HOST_NAME();
  • IDENT_INCR: 返回增量值(返回形式為 numeric(@@MAXPRECISION,0)),該值是在帶有標識列的表或視圖中創建標識列時指定的
  • IDENT_SEED: 返回種子值(返回形式為 numeric(@@MAXPRECISION,0)),該值是在帶有標識列的表或視圖中創建標識列時指定的
  • IDENTITY(函數): 只用在帶有 INTO table 子句的 SELECT 語句中,以將標識列插入到新表中。

盡管類似,但是 IDENTITY 函數不是與 CREATE TABLE 和 ALTER TABLE 一起使用的 IDENTITY 屬性。(自動采番時可以起到作用)

  • ISDATE: 確定輸入表達式是否為有效的日期
  • ISNULL: 使用指定的替換值替換 NULL
SELECT AVG(ISNULL(id,0)) FROM dbo.school AS s
  • ISNUMERIC: 確定表達式是否為一個有效的數字類型
PRINT ISNUMERIC("1223A")
  • NEWID: 創建 uniqueidentifier 類型的唯一值
  • NULLIF: 如果兩個指定的表達式相等,則返回空值。
SELECT NULLIF("AA","AA")
  • PARSENAME: 返回對象名的指定部分。可以檢索的對象部分有對象名、所有者名稱、數據庫名稱和服務器名稱
  • PERMISSIONS: 返回一個包含位圖的值,表明當前用戶的語句、對象或列權限。
  • @@ROWCOUNT: 返回受上一語句影響的行數
  • ROWCOUNT_BIG: 返回受執行的最后一個語句影響的行數。該函數的功能與 @@ROWCOUNT 一樣,除非 ROWCOUNT_BIG 的返回類型是 bigint。
  • SERVERPROPERTY: 返回有關服務器實例的屬性信息
  • SESSIONPROPERTY: 返回會話的 SET 選項設置
  • SESSION_USER: 是一個 niladic 函數,允許在未指定默認值時將系統為當前會話的用戶名提供的值插入到表中。還允許在查詢、錯誤信息等中使用用戶名
  • SCHEMA_NAME: 查看Schema的ID和Name
  • STATS_DATE: 返回最后一次更新指定索引統計的日期
SELECT STATS_DATE(OBJECT_ID("school"),1)
  • SYSTEM_USER: 返回當前系統用戶名
  • SUSER_ID():根據登錄名返回用戶的SID(安全標識號)
SELECT SUSER_SID(),SUSER_SID("COMPU\Administrator"); --不帶參數時返回當前用戶的ID,也可以帶參數指定用戶;
  • SUSER_SNAME():返回與安全標識符關聯的登錄名

返回值類型為NVARCHAR(128);

SELECT SUSER_SNAME(),SUSER_SNAME(0x010500000000000515000000C1289E4023B53F66B8323512E9030000);
  • @@TRANCOUNT: 返回當前連接的活動事務數
  • USER_ID():根據指定用戶名返回數據庫用戶的ID,

如果沒有指定用戶名,則返回當前用戶的數據庫ID;

SELECT USER_ID();
  • USER_NAME():根據與數據庫用戶關聯的ID返回數據庫用戶名,

返回值類型為nvarchar(256);

SELECT USER_NAME(),USER_NAME(USER_ID());

二、插入后返回值的方法:

  • SCOPE_IDENTITY: 返回為當前會話和當前作用域中的任何表最后生成的標識值。 SELECT SCOPE_IDENTITY();(推薦)
  • @@IDENTITY: 返回為當前會話的所有作用域中的任何表最后生成的標識值。 SELECT @@Identity;
  • IDENT_CURRENT: 返回為任何會話和任何作用域中的特定表最后生成的標識值。SELECT IDENT_CURRENT('table_name');

到此這篇關于SQL Server系統函數的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持。

標簽: MsSQL
相關文章:
国产综合久久一区二区三区