我正在设置一个名为 celcat timetabler 的程序www.celcat.com这是一个时间表应用程序,每年都需要一个新的数据库(我知道不要问)。我以前做过这个,不幸的是这次我犯了一个错误,所以我从 sql server 中删除了数据库并重新创建。这在服务器上似乎没有问题,所有表都正确创建,相应的数据也迁移了,但当我尝试登录(通过 celcat)时,我得到无法找到数据库 ID 18 的信息。
我相信问题在于我创建与原始数据库完全相同的名称(我需要这样做,因为我的 SQL 依赖于该名称)。
我查看了主数据库,发现一个表将 ID 分配给数据库,而 celcat 至少不再被分配 18。您知道 18 可能来自哪里吗?它肯定不是存储在 celcat 程序中的,因为我已经尝试过不同的用户和不同的计算机。
更新:
我跑了
更改数据库 celcat0910 设置 SINGLE_USER 并立即回滚 EXEC sp_renamedb 'celcat0910','celcat09101' 更改数据库 celcat09101 设置 MULTI_USER
这样 celcat 应用程序就可以连接到数据库,因此可以正确创建数据库,但是现在它不是我想要的数据库名称。将数据库名称按常规顺序排列为 celcat0708、celcat0809、celcat0910 至少可以让我更轻松地进行多年查询。
答案1
看一下master.dbo.sysdatabases,其中列出了服务器的所有数据库及其ID。
答案2
对于这个非常具体的问题,我会在官方论坛上注册并询问:
答案3
应用程序是否有一个“主”数据库,其中列出了所有年度数据库和其他配置信息?如果有,我会开始浏览它的表格,寻找上面提到的表格中的关键字。
安德斯