客户之前创建的数据库A的status值是65544,最近创建的数据库B的status值是65536,这两者的区别是65536的“8 = trunc. log on chkpt”这个标志位为0。 不知道客户的数据库有没有升级。请问sqlserver新版本的model库默认sp_dboption中的status值是否有变化;如果没有变化,怎么创建出来的数据库status值不同?咨询SQL Server

解决方案 »

  1.   

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

  2.   

    两个数据库的恢复模式应该不同: 一个是SIMPLE,一个是FULL.
    有手工修改过恢复模式,所以两个数据库的status值不同.-- 查询数据库的恢复模式
    select name,recovery_model_desc 
     from sys.databases
     where name in('[数据库A]','[数据库B]')
      

  3.   

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