SQL从对象\u ID中选择*

SQL从对象\u ID中选择*,sql,objectid,Sql,Objectid,这可能有一个明显的答案,但我的谷歌搜索并没有提供答案 为什么我不能执行这样的查询 Select * FROM OBJECT_ID 在这种情况下,我不是指使用函数对象_ID(“TableName”),而是指与sys.Tables中指定的表相关联的实际INT ID 我刚刚在数据库中通过sys.tables处理了两个表,并且碰巧有相同的名称(OE_Down),但是不同的模式(显然),这就是我所想的 因此,如果我执行一个查询SELECT*FROM OE_DOWN,结果就是dbo模式的结果,我假设它看起

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

为什么我不能执行这样的查询

Select * FROM OBJECT_ID
在这种情况下,我不是指使用函数对象_ID(“TableName”),而是指与sys.Tables中指定的表相关联的实际INT ID

我刚刚在数据库中通过sys.tables处理了两个表,并且碰巧有相同的名称(OE_Down),但是不同的模式(显然),这就是我所想的


因此,如果我执行一个查询SELECT*FROM OE_DOWN,结果就是dbo模式的结果,我假设它看起来是默认的。我知道正确的做法是将模式与表一起指定,但为什么不使用它们的对象ID来代替呢,因为它们是唯一的。

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

您不能对字段值直接使用dml(数据操作语言)语句,而只能对db(模式)对象使用dml语句


询问sys.tables可以用来生成动态sql,但不能直接生成dml语句。

我不确定您想做什么。我认为只添加适当的模式或重命名另一个表会更容易。我尝试了几种方法,但无法满足您的要求。原因是我正在处理对象的id,目前正在使用动态SQL查询这些表。但当我工作的时候,我想了想,没有找到答案,所以我想我应该问一下。