日期:2014-05-17  浏览次数:20576 次

求助:sqlserver的model库问题咨询
客户之前创建的数据库A的status值是65544,最近创建的数据库B的status值是65536,这两者的区别是65536的“8 = trunc. log on chkpt”这个标志位为0。 不知道客户的数据库有没有升级。

请问sqlserver新版本的model库默认sp_dboption中的status值是否有变化;如果没有变化,怎么创建出来的数据库status值不同?
咨询 SQL?Server

------解决方案--------------------
樓主的配置環境描述得不清晰,只能用猜的.
最新版本SQLServer是2012,sp_dboption已經不可用.關於IsTruncLog我測試了2008和2012,默認都為1.如果如樓主所說是0的話,估計是建db的腳本或者人為修改.順便貼一下SQL
SELECT DATABASEPROPERTY('MODEL', 'IsTruncLog')

還有樓主那個database status的值你是怎麼得出來的,可否貼一下SQL.
------解决方案--------------------
两个数据库的恢复模式应该不同: 一个是SIMPLE,一个是FULL.
有手工修改过恢复模式,所以两个数据库的status值不同.

-- 查询数据库的恢复模式
select name,recovery_model_desc 
 from sys.databases
 where name in('[数据库A]','[数据库B]')

------解决方案--------------------
trunc. log on chkpt 这选项就是恢复模式SIMPLE和FULL的切换。

MODEL数据库从2000开始,恢复模式就是FULL的,这样新建出来的数据库默认就是FULL模式。
除非手动改过MODEL的恢复模式为SIMPLE,这样新建的数据库的状态,就会是你说的那样了。