我有一个场景,我们为每个用户提供不同的数据库
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服务器上。
先谢谢你!!
答案 0 :(得分:0)
您可以使用以下命令动态地为每个查询添加前缀:
USE userDB1; SELECT ...
答案 1 :(得分:0)
你确定你在谈论数据库,而不是模式吗?
select * from user1.product; -- user1 is scheme
select * from user1..product; --user1 is database
如果是模式,您可以:
执行查询时
从产品中选择*;
表'product'将来自默认架构。
如果是数据库,您应该尝试更改每个用户的连接字符串