我不会把自己描述为害怕变革--而是害怕新技术?的确如此!从操作系统到数据库服务器的技术似乎随着它们的“进步”而变得窃听、低效和落后。
MSDE 2000 (在当今世界中他们可以称之为“SQL2000Express”)
BACKUP [MyDatabase] TO FILE 'c:\backups\mybackup.backup'SQL 2008速递
等一下!它是一个“用户实例”-为了支持它,我们需要将它附加到服务器实例
等一下!要附加它,我们需要(下载78 we )
等一下!当我们登录到我们的.\SQLEXPRESS服务器实例并试图附加我们的数据库时,它会给我们一个错误,这个错误看起来就像我们的国产开发项目中的一个bug:
标题:
无法显示请求的对话框。
参数名称: nColIndex实际值为-1。(Microsoft.SqlServer.GridControl)
有人能解释一下如何用T代码备份SQLServer2008Express数据库的用户实例吗?
(很抱歉,如果这看起来像是微软的火焰,我其实是他们的超级粉丝。)只是真的对这样的事情很生气!请不要投我反对票.)
发布于 2010-11-17 06:26:21
在尝试实现用户实例备份时需要注意的一些关键技巧
a.)连接中
连接字符串应该如下所示:
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True;User Instance=True;Database=MyDatabaseAlias连接字符串给连接提供了别名--不能在同一台机器上并发复制别名,否则连接可能会失败。
b.)备份
如前所述,数据库备份事务SQL在same /2000/2005/2008/R2上是相同的--一旦您将数据库连接起来并将别名为!
BACKUP DATABASE MyDatabaseAlias TO DISK = 'c:\backups\mydatabase_20101117.backup'真正令人惊奇的是您可以得到的牛$h!t错误,因为您的连接字符串没有别名Database=MyDatabaseAlias部分。
例如,无法打开物理文件'c:\Code\MyProject\App_Data\MyDatabase.mdf‘操作系统错误32:“32(进程无法访问该文件,因为它正被另一个进程使用。)”.BACKUP数据库正在异常终止。
( c.) 还原
USE [master]; RESTORE DATABASE MyDatabaseAlias FROM DISK = 'c:\backups\mydatabase_20101117.backup' WITH REPLACE不要忘记在这个语句开头的--所有必需的USE [master]; (并且注意,对于那些从DataContext或类似命令执行命令的人来说,它的all都在一行上),如果您这样做了,它将无法覆盖现有的数据库,因为您仍然会连接到它。
再一次,由于一个无效的连接字符串,您可能在这里收到的各种完全误导错误----是无穷无尽的。
发布于 2010-11-16 15:41:41
嗯,如果是用户实例,那么最简单的备份策略就是复制文件。(虽然它没有连接到Server)。
如果您需要更全面的备份策略(例如事务备份),那么您确实应该查看一个更全面的数据库(例如,附加到完整SQL Server实例的“正常”数据库)。
https://stackoverflow.com/questions/4195721
复制相似问题