2014年2月16日星期日

Microsoft SQL Server 2005 安装 错误为 [Microsoft][SQL Native Client][SQL Server] .. 另类解决办法


某客户一体机安装SQL2005 express出错:


标题: Microsoft SQL Server 2005 安装程序
------------------------------

SQL Server 安装程序无法执行服务器配置命令。错误为 [Microsoft][SQL Native Client][SQL Server]无法将函数单元 'sp_sqlagent_get_startup_info' 添加到组件 'Agent XPs' 中。此单元已向该组件注册。。有关详细的错误信息,请参阅服务器错误日志和安装日志。

有关帮助信息,请单击: http://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft+SQL+Server&ProdVer=9.00.5000.00&EvtSrc=setup.rll&EvtID=29521&EvtType=lib%5codbc_statement.h%40Do_sqlScript%40OdbcStatement%3a%3aexecute_batch%40sysdbupg.sql%40181%40x3bff

------------------------------


除了检查注册表是否有挂起操作外,还要检查主机时间是否正确。该客户就是因为机器时间为2002年,所以出现安装错误,时间不正确还会引起类似hotmail不能登录,google账号不能登录等莫名其妙的问题。

2013年8月7日星期三

2013/14 beta 版本新自定义格式说明

Albformat 格式说明
000000000090222
1.抬头 :1=显示
2.抬头 : 1=有边框
3.客户 : 1=有边框
4.表头 : 1=有边框
5.内容 : 1=有边框
6.条码和用户编号: 1=显示
7.使用3个单位: 1=显示
8/9.每n行一个分割线.
10/11.内容字号
12.数量小数位数
13.价格小数位数
14.小计小数位数
15.合计小数位数
16.显示内容行序号
17.显示备注
18.预留
19.显示Logo



Facformat 格式说明
000000000090222
1.抬头 :1=显示
2.抬头 : 1=有边框
3.客户 : 1=有边框
4.表头 : 1=有边框
5.内容 : 1=有边框
6.条码和用户编号: 1=显示
7.使用3个单位: 1=显示
8/9.每n行一个分割线.
10/11.内容字号
12.数量小数位数
13.价格小数位数
14.小计小数位数
15.合计小数位数
16.显示内容行序号
17.显示备注
18.单价为含税价
19.显示Logo

2013年7月23日星期二

SQL中通配符、转义符与"["号的使用

 SQL中通配符、转义符与"["号的使用 

一、搜索通配符字符的说明
可以搜索通配符字符。有两种方法可指定平常用作通配符的字符: 
使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用: 
WHERE ColumnA LIKE '%5/%%' ESCAPE '/'
在上述 LIKE 子句中,前导和结尾百分号 (%) 解释为通配符,而斜杠 (/) 之后的百分号解释为字符 %。
在方括号 ([ ]) 中只包含通配符本身。要搜索破折号 (-) 而不是用它指定搜索范围,请将破折号指定为方括号内的第一个字符: 
WHERE ColumnA LIKE '9[-]5'
下表显示了括在方括号内的通配符的用法。
符号 含义 
LIKE '5[%]' 5% 
LIKE '5%' 5 后跟 0 个或更多字符的字符串 
LIKE '[_]n' _n 
LIKE '_n' an, in, on (and so on) 
LIKE '[a-cdf]' a, b, c, d, or f 
LIKE '[-acdf]' -, a, c, d, or f 
LIKE '[ [ ]' [ 
LIKE ']' ] 
二、实例说明:
在表PersonalMember中查找strloginname字段中含有"["的记录。

可用三条语句:
1、
select strloginname,* from PersonalMember where strloginname like '%\[%' escape '\'
2、(说明"\"与"/"均可与escape关键字结合作为转义符)
select strloginname,* from PersonalMember where strloginname like '%/[%' escape '/'
3、
select strloginname,* from dbo.PersonalMember where charindex('[',strloginname)>0  

2013年7月19日星期五

分机设置为“从主机数据库读取设置”读取的设置明细。

默认税收方式
DefaultTaxType", My.Settings.DefaultTaxType
税率组
IVA_SYS1", My.Settings.IVA_SYS1
IVA_SYS1_1", My.Settings.IVA_SYS1_1
IVA_SYS2", My.Settings.IVA_SYS2
IVA_SYS2_1", My.Settings.IVA_SYS2_1
IVA_SYS3", My.Settings.IVA_SYS3
IVA_SYS3_1", My.Settings.IVA_SYS3_1
使用新报表格式
A4_format2011", My.Settings.A4_format2011
备份长度
INVOICE_PERCENT", My.Settings.INVOICE_PERCENT
大票打印抬头
A4AlbarabPrintHead", My.Settings.A4AlbarabPrintHead
自动备份
AutoBak", My.Settings.AutoBak
AutobakDay", My.Settings.AutobakDay
AutobakNumber", My.Settings.AutobakNumber
自动清理数据
AutoCleanAlbaran", My.Settings.AutoCleanAlbaran
AutoCleanAlbaranDIA", My.Settings.AutoCleanAlbaranDIA
AutoCleanDate", My.Settings.AutoCleanDate
使用新条码格式
BarCode2012", My.Settings.BarCode2012
发票打印详单
FacturaIvaDetails", My.Settings.FacturaIvaDetails
锁定计税方式
LockTaxStyle", My.Settings.LockTaxStyle
punto主机以及设置
PUNTOServer", My.Settings.PUNTOServer
PUNTOServerDDNS", My.Settings.PUNTOServerDDNS
PUNTOSqlLocal", My.Settings.PUNTOSqlLocal
PuntoRemoteUse", My.Settings.PuntoRemoteUse
货币符号
Sys_Default_Currency", My.Settings.Sys_Default_Currency
Sys_Default_Currency2", My.Settings.Sys_Default_Currency2
使用双密码验证
UseDoublePassword", My.Settings.UseDoublePassword
库存管理
V_Stock", My.Settings.V_Stock
小票单行字数
PrnOneLineWords", My.Settings.PrnOneLineWords
中文小票字体等设置
ChnTicketDefaultFont", My.Settings.ChnTicketDefaultFont
CookFontSize", My.Settings.CookFontSize
ChnTicketCusSpace", My.Settings.ChnTicketCusSpace
NumericUpDownEndTicket", My.Settings.NumericUpDownEndTicket
TicketChn", My.Settings.TicketChn
PrnTicketUnicode", My.Settings.PrnTicketUnicode
PrnTicketSplit", My.Settings.PrnTicketSplit
PrnTicketSplit2", My.Settings.PrnTicketSplit2
小票打印设置
prnLPT", My.Settings.prnLPT
DirectPrint_Port", My.Settings.DirectPrint_Port
ComInicio", My.Settings.ComInicio
CashDrawer", My.Settings.CashDrawer
小票抬头字号
prn_LPTFont", My.Settings.prn_LPTFont
食品条码
product_food", My.Settings.product_food
小票打印数量小数
TicketCantDemil", My.Settings.TicketCantDemil
小票打印税率
PrintTaxDetails", My.Settings.PrintTaxDetails
CheckBoxTaxDetailsAlb", My.Settings.CheckBoxTaxDetailsAlb
PrintTicketTaxDetails", My.Settings.PrintTicketTaxDetails
销售数量停留
Quantity", My.Settings.Quantity
使用punto系统
OrdersPunto", My.Settings.OrdersPunto
punto转换率
OrderPuntoRate", My.Settings.OrderPuntoRate
使用3个发票序列
Use3SerialFacturaID", My.Settings.Use3SerialFacturaID
发票2序列前缀
F2_Txt", My.Settings.F2_Txt
发票3序列前缀
F3_Txt", My.Settings.F3_Txt
小票票脚
foot_txt", My.Settings.foot_txt
加密punto
PuntoEnCode", My.Settings.PuntoEnCode

2013年5月9日星期四

新整理:SQL 2005日志文件损坏后应当如何恢复

SQL 2005日志文件损坏后应当如何恢复
1、在MSSE停止数据库服务。
2、将需要恢复的数据库文件移动到另外的位置。
3、启动数据库服务。
4、确认要恢复的数据库文件已经成功复制到另外的位置,然后在SQL Server Management Studio中删除要恢复的数据库。
5、新建同名的数据库 ds_shop
6、停止数据库服务。
7、用第2步中备份的 ds_shop.mdf 文件覆盖新数据库的同名文件。 位置 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\,删除 ds_shop_log.LDF
8、启动数据库服务。
9、打开数据库,在master数据库上右键新建查询
10、运行下面的命令就可以恢复数据库: 新log文件会在老数据文件位置自动生成 D:\中讯商业管理\DensenAlmacen\Data
 
*********************
假设数据库名称是 ds_shop
alter database ds_shop set emergency
use master
exec sp_dboption ds_shop, N'single', N'true'
dbcc checkdb('ds_shop',REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb('ds_shop',REPAIR_REBUILD)
exec sp_dboption 'ds_shop', N'single', N'false'
exec sp_resetstatus 'ds_shop'
exec sp_dboption 'ds_shop','single user','false'
***************************
11.分离ds_shop数据库,停止数据库服务,剪切 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ds_shop.mdf 到 D:\中讯商业管理\DensenAlmacen\Data
12.使用单机版或者工具附加文件测试是否连接成功

2013年1月15日星期二

2013年以前的更新说明存档

2012-12-28
日报表权限调整
月Total报表打印抬头可选。
2012-12-13
添加同屏显示4张图片的图片下单功能。
修正进货界面一些bug
2012-11-29
修正上一版销售界面商品不计算小计,选择商品返回后不回车等小错误.
联网版本保存速度提升.
2012-11-25
修正使用usb打印机每行字数<33,TOTAL不打印.
修正使用usb打印机不打小票时不能开钱箱
2012-11-24
修复调单不选定某行,直接按回车出错的BUG
修复销售选择商品bug
添加某些功能"不再提醒"界面
2012-11-14
添加销账闪动确认大画面!!!!
改进smart添加商品功能.
添加Forfoma不含税格式.
添加+0.6/+2.5商品名字固定选项.
修正开机时连接数据库画面卡住问题.
修正小分辨率屏幕西文界面下结账画面显示不完整问题.
2012-11-07
修正日报表打印Total乱码问题.
修正10-30版本备份长度不能保存的BUG.
2012-10-28
修正西班牙区域设置下期初商品录入不能添加商品.
修正西班牙区域设置下付款单不能保存问题
修正开机弹出自动备份等对话框不能置顶显示问题.
备份文件列表添加搜寻自定义备份路径.
修正大票打印条码和用户编号下,出口发票单项金额计算为sin iva价格错误.
2012-10-25
修复一些bug
修正不能添加销售员bug
添加查询管理器
2012-10-08
1.客户表可以导出到Excel,导出功能带密码保护
2.多点库存查询功能升级,可导出Excel
3.商品表可导出Excel,导出功能带密码保护
4.复制服务器功能升级,可复制进货单,复制为服务中或订货单
5.添加老发票18%的对应4%附加税支持,不需要手工降级税率
6.修复几个小bug
7.添加长城GWPOS,百汇Baihui等数据库通用浏览工具,方便在线导入数据
8.添加HDD ID小工具
9.调整中心算法升级
10.多点数据报表查询功能升级.
2012-09-26
1.添加几个模块保存窗口大小及位置的设置.
   设置-颜色配置
2.修改点货版图片导入导出功能,修复点货版内存使用模块.
2012-09-03
iva升级,进入设置,系统初始化,升级IVA
修复小票alb打印iva计算错误
添加albaran和factura自定义数量和价格位数。
修复带抬头albaran单价显示为不含税价格错误。
修复销售价只读bug.
2012-08-28
升级数据库文件损坏情况下自动修复功能
升级图片导入功能
2012-08-19
修复点货版不能按类别查询bug
添加配置文件被破坏情况下自动修复功能
添加数据库文件损坏情况下自动修复功能
2012-08-15
销售界面调单后不显示设定价格显示(如显示价格1到4)模式bug修复。
进货界面商品和供应商挂钩功能修复
商品界面添加批量设置类别和供应商
2012-08-09
添加更新资料的防重复商品算法
*
2012-07-30
修复商品价格不含税不能选附加税bug
修复登录界面切换语言bug
2012-07-25
添加锁定销售界面条码框功能(只读,可以Supr删除一行)。
安装条码字体功能加强
修正销售有时候出现 库存异常 错误。
2012-07-19
1.添加复制服务器,把发票和真帐分开放置!!!
2.修复销售界面按ESC返回会自动跳到上一行商品的bug
3.添加税率升级。
4.修改远程PUNTO服务器连接超时相关设置,远程主机长时间不在线自动跳过上传资料。
5.默认价格方式添加【5】选项,功能为在销售界面显示价格1和价格2
6.期初数据录入ASM数据导入修改,可以导入对应一个REF多个条码的商品。导入速度提升10倍。
7.期初数据录入添加ASM数据管理功能,可以直接打开ASM的商品和客户文件。
8.箱/包功能添加一个固定规则选项。
*
2012-07-09
1.修正切换语言BUG.
2.销售排行版功能升级.
2012-07-07
1.查询-调整中心功能加强以及进货统计bug修复,进货功能进货数量统计bug修正。
2.商品编辑界面 包/箱 可以用进货的输入停留功能开启。
3.添加网络获取中讯共享商品数据功能。
2012-06-25
1.添加 默认客户不使用商品默认折扣 选项。  设置-》销售-》开单
2. 5x13_2xPrecio 格式价格框调整,可以接受3位数字。
3.客户VIP编号已存在时,关闭窗口锁死BUG修复。
4.中文小票打印后焦点有时候不能返回修复。
5.主界面按钮对应窗口加入激活焦点功能。
6.整合DDNS更新功能。 管理-》多点远程-》设置
*
2012-06-20
1.添加客户Punto使用功能:客户列表,右键菜单里. Punto商品:条码带PUNTO字样即可
2.客户VALE单小修改。
2012-06-15
1.新版条码格式添加 5x13_2xPrecio 格式
2.销售结账界面按ESC返回,输入焦点强制跳回条码框。再次结账输入焦点强制跳回现金。
3.设置添加对比售价保存功能
4.销售单在某行按F2选商品后不替换当前行,而在最下面新建行出来选择的商品的错误修正。

2012-06-11
1.VALE,退现金,票脚依然出现Vale的票脚BUG修正,只出现普通票脚。
2.客户欠款管理:付款后自动开钱箱。界面添加手工开钱箱按钮。
3.优化库存报警窗口调入速度.
4.报表5*13-sin-precio改为支持EAN13标准
2012-06-04
1.远程调入/编辑添加客户速度加快。
2.客户功能增加查询年/(自定时间段)消费统计和打印功能。
3.修正进货单销售员保存失败BUG
4.销售/进货界面醒目提示当前正在编辑录入的单元格,防止输入数量没按回车确认导致单据金额不准的情况发生。
5.期初商品录入在手工录入时增加监测条码为空时自动复制编号。
6.优化商品添加/编辑的调入储存速度。

2012-05-25
修正 折上折 的小bug。
*
2012-05-23
1.销售界面显示图片,分辨率低情况下合计显示不全bug修正。
2.几处小界面调整。
3.鞋帽生成界面条码为空情况下强制复制用户编号。
4.成品条码相关使用调整。
5.查询客户代金券非法退出Bug修复。
2012-05-19
多仓库调拨功能完善。
进货界面添加几项右键快捷键。
销售界面F3折扣后输入不执行计算的Bug修复
2012-05-13
1.有查看成本权限的用户可以使用[商品]的部分[其他]菜单功能
2.添加销售折上折选项,使用报表格式 \Order\A4-Albaran\AlbaranDtoDto.rdlc.
3.munchina图片下单功能修改
4.添加 附加程序:组策略和IE限制
2012-05-08
      安装包以及数据库设置工具全面支持Win7 / 64位系统
1.增加条码带库存格式 “2x8-pic-stock.rdlc”
2.修改"帮助"菜单下面的"联络我们"为直接发邮件功能.
3.添加可以强制删除带关联账目的客户功能
4.添加新版条码生成界面,速度提升. "进货-条码-设置"
2012-05-03
1.修正vale单管理删除失效bug
2.增强多仓库管理功能
3.主界面以及部分窗口西文翻译修正
4.数据库名选择框可搜寻所有可用数据库
5.点货界面添加[件/箱]单位,需要在销售停留界面开启.
6.Punto 主机以及各种远程查询添加超时设置.
7.客户出货单格式修改
2012-04-24
1.图片下单添加使用价格2选项
2.商品资料添加http顺序框
3.http上传功能添加按入库时间倒序排列,加入上传"顺序框(对应新品功能)"功能.
4.http上传功能添加多线程,优化网站API,节省上传时间.
5.优化数据库选择界面和代码
2012-04-20
1.单据百分比转代金券Vale单添加可以转小数金额的选项.
2.代金券管理单添加合并功能.需要管理员或者删除单据权限才能操作.
2012-04-17
修复销售员非进货权限,但是显示进货按钮问题.
2012-04-16
优化期初数据录入功能.
punto转换的vale单使用V开头,退货vale单用d开头.管理员可以删除代金券.
点货和销售界面可以显示图片列.
2012-04-08
清理非发票单据可以清理服务中/未开单等垃圾单子,恢复数据库空间。
修正进货单价格输入非数字自动关闭BUG
*
2012-04-01
小票Vale单条码调整.低于3位数用0补足,方便扫描.
小票日报表可以分开统计收入[正]的Vale和送出[负]的Vale.
修正销售/进货界面 价格输入非数字,系统自动关闭的BUG.
销售界面,没启用数量小数功能,数量强制不能输入小数.
精简优化数据传输模块,销售/进货界面处理速度提高3倍.
2012-03-25
网络下单平台,http上传商品号码带斜线[/]号图片无法上传的bug修正.
远程DDNS联网版本客户默认不调入全部列表.
2012-03-22
1.N-13 数据库版本升级:把 服装鞋帽数据库/远程连接数据库整合进主数据库,解决sql server版不能启用用户实例问题.
2.销售员可以再销售界面改自己的登录密码
3.进入设置慢的bug修复
4.整合网络下单平台,点货版可同步类别.
*
2012-03-13
多点数据添加不预读选项
修复点货版有些商品图片不能同步bug
修正一些bug.
VIP退款会减少客户预付款。
可编辑【注销/未开单】单据
销售界面添加大字体选项
远程DDNS联网开单速度加快
2012-03-01
中文3个单位alb格式修改
几个报表字体加大
2012-02-29
西语环境小数点修正
2012-02-28
客户流水账功能加入。
客户退货结款可结到欠款单。
Punto/vale算法由四舍五入改为取整。
2012-02-23
1.修改大票打印客户付款单板式
2.付款单添加重打印功能
3.销售使用“箱”单位也可以做查询库存报警
4.添加新报表路径的箱单位的全中文albaran格式
  Order\A4-Albaran\dongfangneiyi\Albaran3Unis.rdlc
2012-02-19
使用DDNS的时候,输入不存在的商品不会主动查询商品表的功能修正。
2012-02-14
修正销售下数量和单价大于1000会销掉一行的BUG
2012-02-06
权限问题修正,有编辑权限操作员可以编辑VIP客户
2012-02-05
改单时间权限问题修正
添加结账分单功能
修正销售界面小数两位,如果输入3位的话,计算有偏差的问题。
2012-01-25
提高商品表打开速度。
修正登录界面打开速度。
销账可以直接销数据库记录文件。
2012-01-24
验证重复单据修正。
vale单据可打印条码,方便下次使用。
2012-01-22
1.添加开机自动备份远程商品表,用于远程主机离线时,可用本地数据临时开单。注:数据超过内存大小时此功能无法正常完成操作。
2.远程Punto功能,本地添加VIP客户会直接上传到远程Punto主机。预付款,返还款等操作直接上传远程主机。具体使用请咨询 916420719.
2012-01-16
日报表权限问题修正
2012-01-12
期初商品录入使用全功能语句时的单元格焦点功能修正。
查看商品经营历程添加查询所有状态销售单。
2012-01-10
退货代金券(Vale)消费按号码查询金额功能
  新的代金券显示为 "No.serial de Vale" 旧代金券为 "No.de Vale"
  设置,销售,小票打印-> 使用代金券号码。屏蔽[其他]收款方式
  使用:退货生成代金券,号码为V开头的数字,下次使用该单据付款,弹出收款窗口后,点击[其他]或者按F12,输入Vxxxx号码,系统自动查询该单据金额,直接进入付款流程,避免手工输入代金券金额引起的相关问题。
对应以前使用退货代金券付款不退现金引起当天[现金]以及[其他]统计不准确问题,添加相应选项
   设置,销售,小票打印-> 使用代金券余额不退现金,打印新的代金券
打印条码可以手工更改价格1价格2
2012-01-09
销售员统计详单加入现金列
2012-01-08
代金券使用另外表格管理,不会被清除非发票单据清空。
升级后原密码失效问题修正。
销售单改日期时间修正。
商品经营历程,客户,商品,报表等表格加入右键选择单元格/列的功能。
2012-01-05
1.自动备份数据库,支持远程/联网计划备份,直接备份至主机D盘。
2.自动销账,按天数自动销账功能加强。
3.销售窗口按ESC弹出的bug可以通过升级.net2.0 sp2解决.
4.条码格式添加.
5.身份添加强制MD5密码加密
*

2012年11月21日星期三

SQL 2005日志文件损坏后应当如何恢复

假设数据库名称是 ds_shop

alter database ds_shop set emergency
use master
exec sp_dboption ds_shop, N'single', N'true'
dbcc checkdb('ds_shop',REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb('ds_shop',REPAIR_REBUILD)
exec sp_dboption 'ds_shop', N'single', N'false'
exec sp_resetstatus 'ds_shop'
exec sp_dboption 'ds_shop','single user','false'



***************************

在实际的工作和学习中,许多人的SQL Server 2005数据库日志文件可能会发生损坏,例如硬件故障、计算机非正常重启或关机等等。 在SQL Server 2005的日志文件损坏时,你会发现以下的情况:
◆1、在SQL Server Management Studio中显示数据库处于置疑(suspect)状态。
◆2、事件日志可能会出现如下错误信息: Could not redo log record (217376869), for transaction ID (02334886), on page (137527), database 'Test' (database ID 15). Page LSN = (217352995), type = 2. Log OpCode = 3, context 19, PrevPageLSN (217376151). Restore from a backup of the database, or repair the database. During redoing of a logged operation in database 'Test', an error occurred at log record ID (761162862). Typically, the specific failure is previously logged as an error in the Windows Event Log service. Restore the database from a full backup, or repair the database.
◆3、无法分离数据库
◆4、用CREATE DATABASE DBName ON ( FILENAME = N'DBFile' ) FOR ATTACH_REBUILD_LOG附加数据库时出现提示:The log cannot be rebuilt because the database was not cleanly shut down.
 详细的恢复方法:
  1、停止数据库服务。
  2、将需要恢复的数据库文件复制到另外的位置。
  3、启动数据库服务。
  4、确认要恢复的数据库文件已经成功复制到另外的位置,然后在SQL Server Management Studio中删除要恢复的数据库。
  5、新建同名的数据库(数据库文件名也要相同)。
  6、停止数据库服务。
  7、用第2步中备份的.mdf文件覆盖新数据库的同名文件。
  8、启动数据库服务。
  9、运行alter database dbname set emergency,将数据库设置为emergency mode
  10、运行下面的命令就可以恢复数据库:
  use master
  declare @databasename varchar(255)
  set @databasename='要恢复的数据库名称'
  exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态
  dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
  dbcc checkdb(@databasename,REPAIR_REBUILD)
  exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态
  注:这个方法是通过.mdf文件恢复数据库,即使大家的log文件丢失也可以进行恢复。


9. 如果DBCC CHECKDB('ds_shop', REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误:
重新执行DBCC CHECKDB('ds_shop')命令,确认数据库中已没有错误存在。
清除数据库的置疑状态:sp_resetstatus 'ds_shop'
清除数据库的单用户模式状态:sp_dboption 'ds_shop',’single user’,’false’
重新启动SQL Server服务,如果一切正常的话,则数据库已经成功恢复。
10. 如果以上步骤都不能解决问题的话,请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据。
如果您只有MDF文件,问题就更加复杂一些,我们需要直接重建事务日志了:
1. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。
2. 用原有的ldf文件覆盖新建数据库对应的.mdf文件,将其日志文件(.ldf)删除。
3. 启动SQL Server服务,并将数据库置为紧急模式(同上: 步骤5和步骤6)。
4. 停止并重新启动SQL Server服务。
5. 执行以下命令重建数据库日志文件:(下面是个示例,您要用您实际的数据库名)
DBCC REBUILD_LOG('ds_shop', 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ds_shop_Log.LDF')
6. 重新将该数据库置为单用户模式。(http://support.microsoft.com/?id=264154)
7. 再次尝试使用DBCC CHECKTABLE或DBCC CHECKDB命令检查并修复数据库中的错误

正确执行完成的提示应该类似于:
  警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
  DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
  此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。
  H.验证数据库一致性(可省略)
  dbcc checkdb('test')
一般执行结果如下:
  CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。
  DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
  I.设置数据库为正常状态
  sp_dboption 'test','dbo use only','false'
  如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。
  J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成 [table=95%][tr][td]以下是引用片段:
  sp_configure 'allow updates',0
  go
  reconfigure with override
  go