【问题标题】:CREATE DATABASE ends up cloning an old databaseCREATE DATABASE 最终克隆了一个旧数据库
【发布时间】:2016-08-31 20:14:12
【问题描述】:

我遇到了一些很奇怪的事情,我以前没有遇到过这个问题,或者我在这里遗漏了一些东西。

在 SQL Server Management Studio 2012 中,我试图运行一个查询来创建一个新数据库,但它最终克隆了一个旧数据库,我正在使用的代码是:

CREATE DATABASE SEC_SSG_INOUT;
GO

USE SEC_SSG_INOUT;
GO

该数据库使用正确的名称创建,但它包含与名为 SEC_SSG 的旧数据库相同的表和存储过程,但数据为空。

这是怎么回事?

【问题讨论】:

  • 克隆数据库的方法有很多。仅 2 个示例: 1) 备份 - 恢复是最简单的。您还原的服务器必须是相同版本或更高版本。 2) 包含数据的脚本数据库(可能在两个单独的 .sql 中)。此方法允许降级使用的服务器。
  • @AlexKudryashev - 他们没有问如何克隆数据库。他们在问为什么CREATE DATABASE 会出人意料地这样做。
  • 对不起。读取时出错;(

标签: sql-server management-studio-express


【解决方案1】:

您一定是在某些时候错误地将这些对象添加到您的model database

这被用作所有新数据库的模板。在那里创建的任何对象都将出现在新数据库中CREATE-ed。

【讨论】:

  • 这并不能解释为什么 create 语句没有故障转移“数据库已经存在”
  • @YosiDahari - 数据库尚不存在。问题中提到的旧版本称为SEC_SSG。他们正在创建一个名为SEC_SSG_INOUT
  • 是的..我现在可以看到了。
  • 我看到我已经检查了数据库>系统数据库>模型>可编程性>存储过程,它们在那里 :D 但我看不到表,但是我可以查询它们,是否安全删除它们,然后尝试我的 CREATE 查询?
  • 太棒了,我从模型数据库中删除了所有表和存储过程,我的 CREATE 查询现在可以正常工作了,非常感谢! (我想知道那些桌子是怎么进去的......)
猜你喜欢
  • 2022-01-03
  • 1970-01-01
  • 2011-06-23
  • 2011-07-29
  • 1970-01-01
  • 1970-01-01
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多