sql server 知识积累(二)

本文深入探讨了SQL数据库中的对象表(sys.objects)和字段表(sys.columns),包括如何通过SQL_VARIANT_PROPERTY函数检测对象的基本类型,以及QUOTENAME函数在Unicode字符串处理中的应用。此外,介绍了如何使用OBJECTPROPERTY函数获取对象属性,如是否为用户表等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库常用系统表,函��?/P>

对象表:sys.objects

数据库所有对象数据存放的地方:表,存储过程,视图,各种约��?/P>

 

字段表:sys.columns

所有对象中的字段数据存放的地方

 

检测对象的基本类型��?/P>

SQL_VARIANT_PROPERTY(对象,N'BaseType')

 

例:

字符串�?'fwefwfw'

select SQL_VARIANT_PROPERTY('fwefwfw',N'BaseType')

返回 varchar

 

数字 210

select SQL_VARIANT_PROPERTY(210,N'BaseType');

返回 int

 

当前用户,或者某对象的操作用��?USER_NAME()

例:

select USER_NAME()

返回当前用户

 

select USER_NAME(a) from tablea

返回操作每一行a列数值的数据库用��?/P>

结果��?BR>dbo
guest
guest
sys

 

QUOTENAME( 'character_string' [ , 'quote_character' ] )

返回带有分隔符的 Unicode 字符串,分隔符的加入可使输入的字符串成为有效��?Microsoft® SQL Server��?分隔标识符��?/P>

'{character}[...n]'

Unicode 字符数据字符串��?EM>character_string ��? sysname 值��?/P>

'quote_character'

用作分隔符的单字符字符串。可以是单引��?(')、左括号或右括号 ([]) 或者双引号 (")。如果未指定 quote_character,则使用括号��?/P>

 

例:

表名:fe[fef]fef[]fe

select * from QUOTENAME('fe[fef]fef[]fe');

等同��?/P>

select * from [fe[fef]fef[]fe];

如果不适用QUOTENAME函数,且不加[]中括号,则无法识别为有效的表��?/P>

 

OBJECTPROPERTY(id,property)

id:某一对象的id

property:属性名称。如果属性名称无效则返回null

属性值:IsUserTable,IsDefault,IsPrimaryKey,IsTable等等

 

例:

select OBJECTPROPERTY(object_id('tablea'),N'IsUserTable')

返回 1  因为tablea为用户表所有返回true

 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值