SQL Select * From Object_ID

时间:2013-12-06 18:43:01

标签: sql objectid

这可能有一个明显的答案,但我的谷歌搜索没有提供和回答

为什么我不能预先形成诸如

之类的查询
Select * FROM OBJECT_ID

在这种情况下,我并不是指使用函数Object_ID('TableName'),而是指在sys.Tables中指定的与表关联的实际INT ID。

我刚刚在DB中遇到了两个表,我正在通过sys.Tables工作,碰巧有相同的名字(OE_Down),但是不同的模式(很明显),这就是我想到的。

因此,如果我执行查询SELECT * FROM OE_DOWN,结果是dbo架构,我认为它看起来是默认的。我知道正确的做法是指定模式和表格,但为什么不使用他们的对象ID,因为它们是唯一的。

1 个答案:

答案 0 :(得分:3)

因为object_id不是数据库中的对象,所以它只是sys.Tables的一个字段......

并且您不能在字段值上直接生成dml(数据操作语言)语句,而只能在db(模式)对象上创建。

要求sys.tables可用于生成动态sql,但不能用于直接dml语句。