用SQL语句还原数据库时如果不指定数据库文件的存储路径,则默认把数据文件和日志文件存放到与原数据库相同的文件路径中,这样可能会产生错误,比如执行下面的语句: restore database SmartDev_11_28 from disk='D:\Backup\SmartDev_20170904010000_413.bak' 得到如下的错误信息: 想要在语句中指定文件路径需要用with move, restore database 数据库名 from disk='备份文件路径' with mo
--返回由备份集内包含的数据库和日志文件列表组成的结果集. --主要获得逻辑文件名 USE master RESTORE FILELISTONLY FROM DISK = 'g:\back.Bak' Go ************************************************ /**//* 利用bak恢复数据库,强制还原(REPLACE) STATS = 10 每完成10%显示一条记录 DBTest和DBTest_log是上面g:\back.Bak里的逻辑文件 */ U
将另一台服务器上的数据库备份文件,在现在用的这台服务器上还原之后,再创建相同的用户名,提示用户已存在 想将之前的用户先删除掉,却提示“数据库主体在该数据库中拥有架构,无法删除解决方法” 在网上找到方法,试了一下,还真管用. --执行如下SQL语句 ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo; --然后手动删除就可以了 我看还原后的数据库中的db_owner架构所有者就是那个要删除的用户名,再看其他数据库中的db_owner架构的所有者就是db_o
由于需要还原同一个数据库的不同备份到不同数据库中,可是在还原的时候,可是在指定目标数据库时,填写不同的数据库名称,在SQL Server Data文件夹中生成的.mdf文件还是同一个,如图,虽然是很简单的一个操作,在这里记录一下,以防忘记. 折腾了半天.之前记得可以把数据库分离,然后直接修改mdf文件,然后在附加就可以了,但是在2017下会附加失败. 其实直接在选择页,文件中直接指定文件名就可以了.手动输入下还原为的文件名就可以了.
之前提到了约束的一些特点,看起来也没什么大不了的问题,http://www.cnblogs.com/wy123/p/7350265.html以下以实际生产运维中遇到的一个问题来说明规范的重要性. 如下是一个简单的建表脚本,表面上看起来并没有什么问题.其中创建了3个约束,一个主键约束,一个唯一约束,一个默认值约束,该脚本执行起来没有任何问题. USE Test GO from sys.tables where name = 'TestConstraint') drop table dbo.Test
RESTORE DATABASE CCC FROM DISK = 'AAA.bak' with replace, MOVE 'BBB' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER2008\MSSQL\DATA\CCC.mdf', MOVE 'BBB_LOg' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER2008\MSSQL\
USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) FROM master..sysprocesses WHERE dbid=DB_ID('旧数据库名称'); EXEC(@SQL); GO --重命名 exec sp_renamedb @dbname='旧数据库名称', @newname='新数据库名称'; --改为多用户模式 ALTER DATABASE 新数据