Sql server 没有检查最佳实践。这很好,所以你不要再去想它了。然后,其他人决定将他们不使用的数据库脱机。从该点开始,维护计划将失败,直到您通过选中“数据库”对话框中的“忽略状态不在线的数据库”选项修改维护计划。请注意,它不会仅针对脱机数据库失败—维护计划将在尝试备份脱机数据库时失败并出现错误,因此某些联机数据库可能无法备份。(这一点的不同作者对此表示怀疑)

Sql server 没有检查最佳实践。这很好,所以你不要再去想它了。然后,其他人决定将他们不使用的数据库脱机。从该点开始,维护计划将失败,直到您通过选中“数据库”对话框中的“忽略状态不在线的数据库”选项修改维护计划。请注意,它不会仅针对脱机数据库失败—维护计划将在尝试备份脱机数据库时失败并出现错误,因此某些联机数据库可能无法备份。(这一点的不同作者对此表示怀疑),sql-server,visual-studio,visual-studio-2015,ssms,ssms-2012,Sql Server,Visual Studio,Visual Studio 2015,Ssms,Ssms 2012,附加-就像你不应该从互联网上运行脚本或在机场接受陌生人的包裹一样,你不应该附加从其他人那里获得的数据库,而不需要一些步骤来验证它。该数据库可能在触发器、存储过程等中包含代码,这可能会危害您的环境。您应该检查要在安全且防火墙保护的环境中连接的数据库,而不是生产系统。 SQL Server的不同版本或版本如何 这些与在不同版本之间恢复数据库的规则没有什么不同。通常,您最多可以将3个版本还原到下一个版本(例如,SQL Server 2008到SQL Server 2012可以正常工作。SQL Serv

附加-就像你不应该从互联网上运行脚本或在机场接受陌生人的包裹一样,你不应该附加从其他人那里获得的数据库,而不需要一些步骤来验证它。该数据库可能在触发器、存储过程等中包含代码,这可能会危害您的环境。您应该检查要在安全且防火墙保护的环境中连接的数据库,而不是生产系统。 SQL Server的不同版本或版本如何

这些与在不同版本之间恢复数据库的规则没有什么不同。通常,您最多可以将3个版本还原到下一个版本(例如,SQL Server 2008到SQL Server 2012可以正常工作。SQL Server 2000到SQL Server 2012不能正常工作)。通过备份/恢复或分离/附加,您根本无法倒退—您必须编写对象脚本和插入脚本,然后手动或使用执行此操作的工具执行此操作。对于版本,您通常可以在SQL Server的主要SKU之间移动—例如,您可以将数据库从标准数据库移动到企业数据库,而无需额外工作。如果您使用的是企业功能(比如压缩或分区),那么在移动之前需要禁用这些功能。你可以从这里看到一个你需要考虑的特性。

In T-SQL:

-- You don't want to be in the database you are trying to detach
USE Master
GO

-- Optional step to drop all active connections and roll back their work
ALTER DATABASE DatabaseName
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO

-- Perform the detach
EXEC sp_detach_db 'DatabaseName'
GO
@skipchecks - acceptable input is 'True' or 'False' if 'True', SQL Server will update statistics before detach. If 'False', it won't. If you don't specify anything here the statistics will be updated in SQL Server 2005 or later.
    @keepfulltextindexfile - The default here is 'True' - if this is set to true, the full text index metadata will not be dropped during the detach.
CREATE DATABASE DatabaseName 
    ON (FILENAME = 'FilePath\FileName.mdf'), -- Main Data File .mdf
    (FILENAME = 'FilePath\LogFileName.ldf'), -- Log file .ldf
     (FILENAME = 'FilePath\SecondaryDataFile.ndf)  -- Optional - any secondary data files
    FOR ATTACH 
GO