sql-server - SQL Server 中的某些表需要 [user].[table] 而其他表则不需要,这是为什么,我可以强制执行吗?

标签 sql-server

正如标题所暗示的那样,如果您执行类似的操作,我很困惑为什么我的数据库中的某些表会崩溃;

SELECT * FROM [user].[table]

但在另一张 table 上它工作正常。

我正在测试一些代码,如果您不使用 [user].[table],这些代码最终会出现在服务器上,所以我真的很想在我的机器上强制执行此操作。

谁能解释为什么会发生这种情况,并告诉我如何解决它。

更多信息

这是我尝试使用 [user].[table] 而不是 [table] 运行查询时收到的消息;

[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'usr.tbl'

最佳答案

“用户”位是表所属的模式

因此您可以在同一数据库中拥有 dbo.tableuser.table

默认情况下,SELECT * FROM table 通常会查找 dbo.table。但是,如果登录名/用户有不同的默认架构,那么它将查找 thatschema.table

修复它:

  • 您可以使用 ALTER SCHEMA .. TRANSFER..修复当前设置
  • 持续进行,确保每个表引用在 CREATE、ALTER、SELECT 等方面都有正确的架构

另见 "User-Schema Separation" on MSDN

关于sql-server - SQL Server 中的某些表需要 [user].[table] 而其他表则不需要,这是为什么,我可以强制执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3889165/

相关文章:

sql-server - SSIS-将DT_TEXT(长度为11,000个字符)转换为DT_STR并修剪为1,000个字符

sql-server - 无法将空字符串传递到非空数据库字段

sql-server - 是否会计算使用 'OR' 的 SQL SERVER 表达式的所有部分?

sql-server - mdx 规范?

SQL Server - 任何添加列并使其成为表中第一列的方法?

c# - 为什么我的网站经常卡住?

sql-server - 亚马逊 MWS - 测试/沙盒/生产

sql - 如何创建存储在 xml 对象中的表、列和相应值的快照

sql - 在 SQL Server 中创建事件

sql-server - 使用 ColdFusion 将日期时间(毫秒)插入 MSSQL 数据库