T-SQL入门攻略之7-常見系統函數

--> Title  : T-SQL 入门 攻略 7 - 常見系統函數

--> Author : wufeng4552

--> Date   : 2010-0 4 - 14

1 :獲取服務器名與 ID

select host_name () -- 獲取服務器端計算機名稱

/*

GOLD-MIS06

*/

select host_id ()    -- 獲取服務器端計算機標識 ID

/*

1748

*/

2 :獲取數據庫名與 ID

select db_Name ()

-- 獲取數據庫名稱

-- 格式為 db_name([database_id]) 表示要返回由 database_id 指定的 ID

-- 數據庫名稱 , 如果省略則返回當前數據庫名稱

select db_id ()   

-- 獲取數據庫 ID

-- 格式為 db_id('database_name') 表示要返回由 database_name 指定的數據庫 ID

-- 如果省略則返回當前數據庫 ID

select dbid 數據庫 ID,

       db_name ( dbid ) 數據庫名

from master.. sysdatabases

order by dbid

-- 以上返回所有數據庫 ID 與數據庫名

3 :獲取應用程序名稱

select app_name ()

-- 該函數用於獲取當前會話的應用程序名稱

-- 返回類型為了 nvarchar(128)

/*

Microsoft SQL Server Management Studio - 查詢

(1 個資料列受到影響 )

*/

4 :獲取數據庫用戶名與 ID

select user_name ()

select user_name ( 0)

select user_name ( 1)

select user_name ( 2)

select user_name ( 3)

-- 語法格式為 :user_name([ID]), 其中 ID 是與數據庫用戶關聯的標識號

-- 該函數返回由 ID 指定的標識號的數據庫用戶名 , 如果被省略則返回當

-- 前數據庫用戶名稱

select user_id ( 'public' )

select user_id ( 'dbo' )

select user_id ()

-- 語法格式為 :user_id('user') 其中 user 表示用戶名

-- 該函數返回由 user 指定用戶名的數據庫用戶 ID,

-- 如果省略則返回當前數據庫用戶的 ID

5 :獲取數據庫對象的名稱與 ID

select object_name ( 4, 1)

/*object_name(object_id[,database_id]) 其中 object_id 表示對象的 ID

database_id 表示要在其中查找對象的數據庫 ID, 返回類型為 sysname.

*/

select object_id ( 'dbo.tb' , 'U' )

/* 格式如下 :object_id('[database_name.[schema_name].|schema_name.]object_nane'[,type'])

object_name 對象的名稱

schema_name 架構的名稱

type 表示架構範圍內對象的類型

*/

6 :獲取登錄名

select suser_sname ()

select suser_sname ( 0x01)

-- 語法格式為 suser_sname(server_user_sid)server_user_sid 表示

-- 安全標識號類型為 varbinary(85), 如果未指定 , 則返回當前用戶

-- 登錄的登錄名

7 :獲 架構名稱

select object_schema_name( object_id ( 'tb' ))

/* 語法格式為 object_schema_name(object_id[,database_id])

  object_id 表示對象 ID,database_id 表示要在其中查找對象的數據庫 ID

  返回類型為 sysname

*/

select

   object_schema_name( object_id ) as 架構名

from master. sys.objects

8 :獲取數據長度 ( 字節數 )

declare @s1 varchar ( 15), @s2 nvarchar ( 15), @s3 char ( 15), @s4 nchar ( 15)

select @s1= ' 長度測試 test' , @s2= N' 長度測試 test' , @s3= ' 長度測試 test' , @s4= N' 長度測試 test'

select datalength ( @s1) s1, datalength ( @s2) s2, datalength ( @s3) s3, datalength ( @s4) s4

/*

s1          s2          s3          s4

----------- ----------- ----------- -----------

12          16          15          30

綜上可以看出如果數據類型為 unicode 則每個字符均占兩個字節 ( 變長 ), unicode 漢字占兩個

英文占一個 ( 變長 ); 而定長的 char(15) 占個 ,nchar(15) 占個

*/

9 :獲取字段定義長度

select col_length ( 'student' , 's_name' ) s_name 定義長度

select col_length ( 'student' , 'S_no' ) S_no 定義長度

-- 語法格式為 :col_length('table','column')

10 :獲取字段名稱

select col_name ( object_id ( 'student' ), 1)

-- 語法格式為 :col_name(table_id,column_id)

--table_id 為表對象 ID,column_id 為字段 ID

 

你可能感兴趣的:(T-SQL入门攻略之7-常見系統函數)