思迅服装之星门店交换数据的时候出现 DataWindow Error 错误的解决

一个客户的思迅服装之星连锁版,今天一个门店出现了 SQL Server 服务不能启动的故障,解决了启动问题并还原数据库后,打开门店系统做数据交换,当上传数据的时候出现 DataWindow Error 错误:「Select error,由于数据移动,未能继续以 NOLOCK 方式扫描」。不能继续上传。如图所示:

DataWindow Error

出现这个错误是因为数据库中有错误,修复错误后即可正常数据交换。

思迅服装之星数据库错误的修复方法(均在 「查询分析器」 中运行相应的语句):

  1. 检查错误及数量
    DBCC CHECKDB('hbfsv8_branch')
  2. 设置单用户模式
    USE master
    Go
    EXEC sp_dboption 'hbfsv8_branch', 'single user', 'TRUE' --设置单用户模式
    go
  3. 数据库修复
    DBCC CHECKDB ('hbfsv8_branch','repair_rebuild')
    Go
  4. 再次检查有没有错误
    DBCC CHECKDB('hbfsv8_branch')
    --如果没有了红色提示文字,说明修复成功,否则上面数据库修复语句的 repair_rebuild 改成 repair_allow_data_loss 重新执行一遍,并再次检查错误。
  5. 返回多用户模式
    EXEC sp_dboption 'hbfsv8_branch', 'single user','FALSE'
    go
  6. 数据库修复好后,最后执行一下自增列的修复
    use hbfsv8_branch
    go
    declare @tablename varchar(100)
    declare  test_cur cursor for
    select object_name(id) from syscolumns 
    where status=128
    open test_cur
    fetch test_cur into @tablename
    while @@fetch_status=0
    begin   
       DBCC CHECKIDENT (@tablename, RESEED)   
       fetch test_cur into @tablename
    end
    close test_cur
    deallocate test_cur
    go

其实检查和修复 SQL 数据库错误的语句都是一样的(参见检测和修复 SQL 数据库错误),只是思迅最后这里多了个 「自增列的修复」(这个东西我自己也不是很明白是啥作用)。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注