对于SQL Server 2005,我有点新手。我有一个包含大多数存储过程和表的数据库(我们称之为'GrandDatabase')。每个用户都有自己独立的数据库,以用户的编号ID命名。所以我有一个如下数据库列表,例如:
GrandDatabase
100个
101个
102个
...
我需要在GrandDatabase和用户数据库之间连接表。我在其他地方读过,当从GrandDatabase执行时,以下内容应该有效:
SELECT
*
FROM
GrandDatabase.User INNER JOIN
100.dbo.UserInfo ON GrandDatabase.User.UserID = 100.dbo.UserInfo.UserID
这给了我一个语法错误,抱怨'。'在第一次引用100数据库之后。我做了一些调整,发现当我使用非编号的数据库时,这段代码工作正常(例如,将'100'替换为'User100')。有人知道如何使用带编号的数据库名称进行此操作吗?
谢谢!
克里斯
答案 0 :(得分:2)
尝试使用[100] .dbo.UserInfo而不仅仅是100。
答案 1 :(得分:1)
尝试用括号括起数据库名称:
SELECT
*
FROM
GrandDatabase.User INNER JOIN
[100].dbo.UserInfo ON GrandDatabase.User.UserID = [100].dbo.UserInfo.UserID
答案 2 :(得分:1)
尝试将数字放入方括号并使用别名,例如:
SELECT *
FROM GrandDatabase.User
INNER JOIN [100].dbo.UserInfo u
ON GrandDatabase.User.UserID = u.UserID