Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 未选择表的新列_Sql Server - Fatal编程技术网

Sql server 未选择表的新列

Sql server 未选择表的新列,sql-server,Sql Server,我在表中添加了一个新列,当我选择这个带有模式名的表时,新列显示,当我选择这个列而不提及模式名时,SQL不会标识新列,所以基本上: 从架构中选择新列。表有效 从表中选择新列不起作用 请告诉我为什么会发生这种情况以及如何纠正这种情况,我希望此列在不提及架构名称的情况下可用。如果您从没有架构名称的表中进行选择时没有获得新列,则这意味着该架构名称不是默认名称,并且在默认和标注维度的架构中有两个具有该名称的表。您可以在不同的模式中使用相同名称的表。结果显示,由于我查询的是视图而不是表,所以未选择列,并且我

我在表中添加了一个新列,当我选择这个带有模式名的表时,新列显示,当我选择这个列而不提及模式名时,SQL不会标识新列,所以基本上:

从架构中选择新列。表
有效
从表中选择新列
不起作用


请告诉我为什么会发生这种情况以及如何纠正这种情况,我希望此列在不提及架构名称的情况下可用。

如果您从没有架构名称的表中进行选择时没有获得新列,则这意味着该架构名称不是默认名称,并且在默认和标注维度的架构中有两个具有该名称的表。您可以在不同的模式中使用相同名称的表。

结果显示,由于我查询的是视图而不是表,所以未选择列,并且我还需要将此列添加到视图中


出现混淆的原因是,在早期版本的产品(Dynamics AX)中,他们(Microsoft)没有将架构应用于数据库对象,现在他们添加了架构并创建了向后兼容的视图。

您使用的是MS SQL Management Studio吗?也许这很愚蠢,但使用此工具,您必须刷新环境以查看新创建的列或表。是的,由于新添加的列,发送不带架构名称的插入查询的应用程序也会失败。您确定,您没有使用事务或提交它吗?它是哪个数据库版本?我没有使用任何事务,数据库版本是100。我如何在不提及模式名称的情况下使此列可用?您应该更改包含该表的用户的默认模式:
使用默认模式更改用户Mary51\u schema=Purchasing
@GiorgiNakeuri,您是否希望有两个不同的表具有相同的名称,但模式不同?如果是这样,您应该对所有对象名进行模式限定以避免歧义,包括
dbo
模式中的对象。@DanGuzman,您可以省略模式名,用户的默认模式将为used@GiorgiNakeuri,我理解不需要指定架构名称。我是说,指定它是一种最佳实践,不仅是为了避免歧义,也是为了提高性能。