如何切换数据库架构?

时间:2010-01-14 10:53:48

标签: sql-server-2005 delphi delphi-2007

我正在使用一个使用SQL Server数据库作为后端的Delphi / WIN32应用程序,使用ADO访问数据。有许多用户使用此应用程序,但有一个用户使用特殊设置:他们有多个数据库模式,每个模式都包含应用程序的完整数据模型。每个模式还有一个数据库用户,默认为特定模式。它们还为每个数据库用户提供单独的登录帐户,允许他们通过在连接字符串中使用不同的登录帐户来控制使用哪个模式。 他们使用此设置来拥有一个支持多个办公室的集中式数据库。通常情况下,每个办公室都有自己的数据库,但在这里,每个办公室都有自己的架构。

我喜欢他们正在使用的解决方案。我之前没有考虑过这个问题,因为应用程序通常由单个办公室使用。只有这个客户需要一个集中的数据库。该应用程序工作正常,即使它不知道这些架构,只是因为登录帐户将默认为正确的架构。

但是现在他们已经问过是否可以以用户可以选择他们想要连接的架构的方式更改代码。因此,用户需要能够在应用程序中的模式之间切换。而且我不想重写代码以支持这些模式,因为我需要保持SQL代码数据库中立。所以我正在寻找一种方法将用户切换到另一个模式,而不会对代码本身产生太大影响。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如何更改用户的默认架构?

ALTER USER <user name> 
  WITH DEFAULT_SCHEMA = <desired schema>;

当然,您需要在升级的权限下执行此操作,因为我确信您没有所有具有ALTER USER功能的用户。