相关疑难解决方法(0)

兼容级别 80 的实际行为是什么?

有人可以让我更好地了解兼容模式功能吗?它的行为与我预期的不同。

据我所知,兼容模式是关于不同版本的 SQL Server 之间某些语言结构的可用性和支持。

它不会影响数据库引擎版本的内部工作。它将尝试阻止使用早期版本中尚不可用的功能和构造。

我刚刚在 SQL Server 2008 R2 中创建了一个兼容级别为 80 的新数据库。创建了一个只有一个 int 列的表,并用几行填充它。

然后用一个row_number()函数执行一个 select 语句。

我的想法是,由于 row_number 函数是在 2005 年才引入的,这会在兼容 80 模式下引发错误。

但令我惊讶的是,这工作得很好。然后,当然,只有在您“保存某些内容”时才会评估兼容规则。所以我为我的 row_number 语句创建了一个存储过程。

存储过程的创建进行得很顺利,我可以完美地执行它并获得结果。

有人可以帮助我更好地了解兼容模式的工作吗?我的理解显然有问题。

sql-server sql-server-2008-r2 compatibility-level

47
推荐指数
2
解决办法
4万
查看次数

将 SQL Server 2000 数据库升级到 2008 R2 并启用新功能

我最近将 SQL Server 2000 数据库升级到 2008 R2。


我所做的是:

  1. 关闭旧机器上的 SQL Server 2000 (express) 服务,
  2. 将数据文件(mydatabase.mdfmydatabase.ldf)移动到新机器,
  3. 运行 SQL Server Management Studio 2008,
  4. 连接到本地数据库引擎,
  5. 将数据文件附加到数据库。
  6. 修改数据库兼容级别为SQL 2008(100)。

问题:我还应该做些什么来完成迁移?

我想要:

  1. 使用校验和和完整恢复模型等新功能,
  2. 使这个数据库与在 SQL 2008 R2 中创建的完全一样,
  3. 使该数据库完全兼容、正确并且非常适合新的 SQL 2008 R2 数据库引擎。

换句话说:我只想知道如何正确且完全地将旧的 SQL 2000 数据库转换为新的 2008 R2 数据库,保持冷静,一切都做得对,并对所有新功能感到满意。


我问这个问题是因为我在互联网上发现很多网站都说了很多不同的东西让我感到困惑:有人说需要重建索引,有人说要做其他事情......现在我什么都不知道,所以我想听听有经验的人的意见和清晰的分步说明。我在一家非常小的公司工作,我一个人,我不想把事情搞砸。


先生,您的回答给我留下了深刻的印象,我没想到这么多。


所以一些评论:

  1. 该数据库现已投入生产。正如我所说,它是使用 deattach-attach 方法升级的,正如我在第一篇文章中所描述的和 MSDN 上所述:http : //msdn.microsoft.com/en-us/library/ms189625.aspx 它必须快速完成,所以我被迫这样做。让我们忘记它有多么不合适,而专注于当前的情况。

  2. 用户/权限在这里不是问题 - 只有少数并且权限很简单。

  3. 使用数据库的应用程序兼容 SQL 2000 到 2012 年,所以这也不是问题。

  4. 数据库文件 (MDF) 不大 - 只有大约 1GB。


还有几个问题:

  1. 你推荐使用备份/恢复方法,但我按照上面写的做了,所以我现在会遇到什么问题吗?一切正常,没有任何问题。 …

migration sql-server-2000 sql-server-2008-r2

23
推荐指数
1
解决办法
5万
查看次数

SQL Server 2000 到 2008 R2

当我尝试将数据库备份从 SQL Server 2000 恢复到 2008 R2m 时,出现以下错误:

在此处输入图片说明

其实我不太明白。该错误实际上意味着什么?

我该如何解决?

sql-server restore

-6
推荐指数
1
解决办法
2281
查看次数