【发布时间】:2017-04-23 23:57:07
【问题描述】:
我有一个场景,每个用户都有不同的数据库
eg: user1 = userDB1 (database name)
user2 = userDB2 (database name)
..
userN = userDBN
在我的代码中,我有一个类似这样的查询。
select * from user1.product;
select * from user2.product;
所以我必须在触发此查询之前派生和更改数据库名称。
我想知道我是否可以在 MS-SQL 服务器端进行一些更改,我必须正确查询
select * from user.product;
这样用户将在事务开始之前被 user1 或 user2 替换。是否有任何可用的数据库端机制,我可以在触发查询之前使用它来切换数据库名称。
由于有很多复杂的查询,我不得不去更改每个查询,这很痛苦。
注意-所有这些数据库都在同一个 SQL 服务器上。
提前谢谢你!!
【问题讨论】:
-
使用通用过程创建数据库用户,该过程在正确的数据库中为正确的用户执行正确的查询。
-
您可以使用dynamic sql,或者在Java 中更新连接字符串。但我建议您考虑将 User as foreign key 添加到您的表中。
标签: java sql sql-server schema