在sysobjects系统表中存储着数据库的所有对象,每个对象都有一个唯一的id号进行标识.
object_id就是根据对象名称返回该对象的id.
反之,object_name是根据对象id返回对象名称.
比如查询某表是否有某字段
select * from syscolumns where [id]=object_id('shop_voice') and [name]='voice6_id'
select object_id('shop_voice')
select object_id(对象名)等同于:
select id from sysobjects where name=对象名
注: 如果参数是一个临时表名,则必须指定所属数据库.你举出的OBJECT_ID('Tempdb..##flowcount') 就属于这种情况.说明这个临时表是数据库Tempdb的.
select object_name(id号)等同于:
select name from sysobjects where id=id号
sys.columns 也是查询字段好像字段比 syscolumns 查出来的少 sys.objects syscolumns 里面包含所有表和字段主键什么的