在sysobjects系统表中存储着数据库的所有对象,每个对象都有一个唯一的id号进行标识.
object_id就是根据对象名称返回该对象的id.反之,object_name是根据对象id返回对象名称.
select object_id(对象名)等同于:
select id from sysobjects where name=对象名
select object_name(id号)等同于:
select name from sysobjects where id=id号
经常用在sql创建表前判断表是否存在,存在删除,不存在则创建,例子:
USE Test
GO
IF NOT OBJECT_ID('[Contract]') IS NULL
DROP TABLE [Contract]
GO
CREATE TABLE [Contract]
(ID INT PRIMARY KEY IDENTITY(1,1),
[Name] Nvarchar(50) NULL,
Total float null,
buget nvarchar(500) null
)
GO
注: 如果参数是一个
临时表名,则必须指定所属数据库. 如(OBJECT_ID(N'tempdb.dbo.#mytemptable'))
N表示以unicode码存储,可以兼容中文