判断某列是否存在于某表中

判断某列是否存在于某表中:
if select count(name) from syscolumns where name='字段名' and id=object_id('表名')>0 表示存在。 

syscolumns:每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行,也就是说,不止可以通过它判断是否存在于某表中,还可以是视图或存储过程。

object_id('对象名')等同于select id from sysobjects where name=‘对象名'

 

syscolumns

列名数据类型描述
namesysname列名或过程参数的名称。
idint该列所属的表对象 ID,或与该参数关联的存储过程 ID。
xtypetinyintsystypes 中的物理存储类型。
typestattinyint仅限内部使用。
xusertypesmallint扩展的用户定义数据类型 ID。
lengthsmallintsystypes 中的最大物理存储长度。
xprectinyint仅限内部使用。
xscaletinyint仅限内部使用。
colidsmallint列或参数 ID。
xoffsetsmallint仅限内部使用。
bitpostinyint仅限内部使用。
reservedtinyint仅限内部使用。
colstatsmallint仅限内部使用。
cdefaultint该列的默认值 ID。
domainint该列的规则或 CHECK 约束 ID。
numbersmallint过程分组时(0 表示非过程项)的子过程号。
colordersmallint仅限内部使用。
autovalvarbinary(255)仅限内部使用。
offsetsmallint该列所在行的偏移量;如果为负,表示可变长度行。
statustinyint用于描述列或参数属性的位图:

0x08 = 列允许空值。
0x10 = 当添加 varcharvarbinary 列时,ANSI 填充生效。保留 varchar 列的尾随空格,保留 varbinary 列的尾随零。
0x40 = 参数为 OUTPUT 参数。
0x80 = 列为标识列。

typetinyintsystypes 中的物理存储类型。
usertypesmallintsystypes 中的用户定义数据类型 ID。
printfmtvarchar(255)仅限内部使用。
precsmallint该列的精度级别。
scaleint该列的小数位数。
iscomputedint表示是否已计算该列的标志:

0 = 未计算。
1 = 已计算。

isoutparamint表示该过程参数是否是输出参数:

1 = 真。
0 = 假。

isnullableint表示该列是否允许空值:

1 = 真。
0 = 假。

OBJECT_ID

返回数据库对象标识号。

语法

OBJECT_ID ( 'object' )

参数

'object'

要使用的对象。object 的数据类型为 char nchar。如果object 的数据类型是 char,那么隐性将其转换成 nchar

返回类型

int

注释

当该参数对系统函数可选时,则系统采用当前数据库、主机、服务器用户或数据库用户。内置函数后面必须跟圆括号。

如果指定一个临时表名,则必须在临时表名前面加上数据库名,例如:

SELECT OBJECT_ID('tempdb..#mytemptable')

系统函数可以在选择列表、WHERE 子句和任何允许使用表达式的地方使用。有关更多信息,请参见表达式WHERE

示例

下面的示例为 pubs 数据库中的 authors 表返回对象 ID。

USE master
SELECT OBJECT_ID('pubs..authors')

下面是结果集:

----------- 
1977058079   

(1 row(s) affected)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值