【问题标题】:Change which schema is accessed by default [duplicate]更改默认访问的架构 [重复]
【发布时间】:2013-02-22 23:10:50
【问题描述】:

我有一个从另一台服务器传输过来的数据库,其架构为careinflg。但是,我的 C#.net Web 应用程序会查找具有架构 dbo 的对象。如果不手动更改我的应用程序中的每个语句,是否默认指向careinflg

如果可能的话,我更愿意在 C# 层中执行此操作,因为数据库位于开发服务器上,在其中更改用户属性本身是不明智的 - 但如果没有其他方法,我可以这样做。

【问题讨论】:

    标签: c# sql-server schema


    【解决方案1】:

    在创建、更改和引用对象时,you should always specify the schema, regardless of whether you are using dbo or any other schema

    您可以通过更改该用户的默认架构来更改应用当前的行为方式:

    USE your_db;
    GO
    
    ALTER USER app_user_name
      WITH DEFAULT_SCHEMA = careinflg; -- this is a terribly unreadable name, btw
    

    但这不是一个修复,可能会产生其他不良后果(例如,当您的应用程序创建对象时)。您需要有意识地始终使用由两部分组成的对象名称。

    【讨论】:

      猜你喜欢
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 2013-06-28
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      相关资源
      最近更新 更多