songzx

数据库被系统自动置为质疑状态
解决:
sp_resetstatus 关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项。
注意 只有在该问题出现后,才可以使用 sp_resetstatus。否则,可能会损坏数据库。

由于该过程修改了系统表,系统管理员必须在创建这个过程前,启用系统表更新。要启用更新,使用下面的过程:
USE master
GO
sp_configure \'allow updates\', 1
GO
RECONFIGURE WITH OVERRIDE
GO
过程创建后,立即禁用系统表更新:
sp_configure \'allow updates\', 0
GO
RECONFIGURE WITH OVERRIDE
GO
只有系统管理员才能执行 sp_resetstatus。执行该过程后,立即重起SQL Server服务。
语法为:
sp_resetstatus database_name

下面的例子将关闭 m_c 数据库的置疑标志。
sp_resetstatus m_c
下面是结果集:
Database \'PRODUCTION\' status reset!
WARNING: You must reboot SQL Server prior to accessing this database!


数据库日志手动清除
解决:
backup log m_c with no_log
DBCC shrinkdatabase(m_c)

用数据库文件和日志文件恢复数据库
解决:
sp_attach_db m_csdn,\'d:\datebase\m_c.mdf\',\'d:\datebase\m_c_log.ldf\'

存储过程分页
create   proc  getpage 
           (@sqlstr  nvarchar(4000),  --查询字符串 
                 @pagecount  int=1,                --第N页 
             @pagesize  int=10)                --每页行数 
           as 
           begin 
           set  nocount  on 
           declare  @P1  int--P1是游标的id 
           set  @pagecount=(@pagecount-1)*@pagesize+1 
           exec  sp_cursoropen  @P1  output,@sqlstr 
           exec  sp_cursorfetch  @P1,16,@pagecount,@pagesize   
           exec  sp_cursorclose  @P1 
           end
GO
在查询分析器里运行这个存储过程,会返回两个结果集,第一个是空记录,第二个是符合条件的按@pagesize  数量显示的记录。

按输入时间段生成每天的日期记录
---生成循环用的临时表
    select top 366 id=identity(int,0,1) into #datetmp from syscolumns,sysobjects
    delare @dt1 datetime
    delare @dt2 datetime
    set @dt1=\'2007-10-1\'
    set @dt2=\'2007-10-31\'
    select dateadd(day,id,@dt1) as everyday from #datetmp where dateadd(day,id,@dt1)<=@dt2
---删除临时表
    drop table #datetmp

分类:

技术点:

相关文章:

  • 2021-08-07
  • 2021-10-14
  • 2021-12-24
  • 2021-06-01
  • 2021-09-19
  • 2021-09-30
  • 2021-12-08
猜你喜欢
  • 2021-06-11
  • 2021-12-04
  • 2021-04-26
  • 2021-07-03
  • 2021-11-20
  • 2021-05-29
  • 2021-07-12
相关资源
相似解决方案