1、查看信息
1.1、查看编号和名称
select @@SERVERNAME
--SQL SERVER服务器的连接字符串,如:computername\instancename
select @@SERVICENAME
--若为默认实例,则返回MSSQLSERVER;若是命名实例,则返回实例名
改变机器名称后,实例的名称也会跟着变。但是之后会导致本机的内部实例名会跟网络服务名不一致,解决办法如下:
select @@SERVERNAME, SERVERPROPERTY('ServerName')
if serverproperty('servername')<>@@servername
begin
declare @server sysname
set @server=@@servername
exec sp_dropserver @server=@server
--删除这个服务器注册
set @server=cast(serverproperty('servername') as sysname)
exec sp_addserver @server=@server,@local='LOCAL'
--添加当前改过名的服务器注册
end
select HOST_ID() --主机编号
select HOST_NAME()--主机名
select DB_ID('master') --数据库编号
select DB_NAME(1) --数据库名称
select OBJECT_ID('sysobjects') --数据库对象编号
在临时表上用object_id()时,要在临时表前加数据库名
如下:
方法1(错误)
--#temp不是存在当前数据库中的
select object_ID('#temp')
方法2(错误)
--是存在tempdb中,但temdb中没有这个函数
use tempdb
select object_ID('#temp')
方法3(正确)
--MSQL的临时表是存在tempdb中的
select object_ID('tempdb..#temp')
select OBJECT_NAME(1) --数据库对象名称
select File_ID('master') --返回该逻辑文件名的编号
select File_NAME(1) --返回该文件编号的逻辑文件名
select FILEGROUP_ID('primary') --返回文件组编号
select FILEGROUP_NAME(1) --返回文件组名称
select COL_NAME(OBJECT_ID('sysobjects'),1)
--表中列的名称,每个表中列是从…n顺序编号
select INDEX_COL('sysobjects',1,1)
--返回sysobjects中第一个索引第一个键的名称
select APP_NAME() --返回当前使用的工具名称,如:SQL 查询分析器
select @@SPID --返回当前连接在SQL SERVER中的编号
select @@PROCID --在SP中使用,查看自己的ID
1.2、查看登录和用户
select Suser_Sid() --返回登录的SID,可传参,默认返回当前值
select Suser_Sname() --返回登录的名称,可传参,默认返回当前值
select System_User --等价于不带参数的SUER_SNAME()
select User_Id() --返回数据库用户ID,可传参,默认返回当前值
select User_Name() --返回数据库用户名,可传参,默认返回当前值
select User --等价于不带参数的USER_NAME()
select Current_User --等价于不带参数的USER_NAME()
select Session_User --等价于不带参数的USER_NAME()
1.3、查看属性
select Serverproperty('Collation') --查看服务器的属性
select Databasepropertyex('master','Collation') --查看数据库的属性
select Sessionproperty('ANSI_NULLS') --查看当前会话的SET选项
select Objectproperty(1,'IsTable') --查看当前对象的信息
select Filegroupproperty('Primary','IsReadOnly') --查看文件组的属性
select Fileproperty('master','SpaceUsed') --查看文件的属性
select Columnproperty(1,'name','AllowsNull') --查看列属性
select Indexproperty(1,'ncsysobjects','IsClustered') --查看索引属性
select Indexkey_Property(1,2,1,'ColumnId') --查看索引键信息
select Collationproperty('Chinese_PRC_CI_AS','LCID')
--查看排序规则的信息
select Sql_Variant_Property('abc12345','BaseType')
--返回sql_variant类型值的信息
2、NULL相关的
select COALESCE(null,'first',null,'second',null)
--返回众多表达式中第一个非NULL 表达式的值
select NULLIF('123','123')
--在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值
select ISNULL(null,'not null value')
--使用指定的替换值替换NULL
select GetANSINull('master')
--查看SET ANSI_NULL_DFLT_ON 的设置