大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
sqlserver附加数据库错误823的解决方案
公司2013年成立成都创新互联公司专注于”帮助中小企业+互联网”, 也是目前成都地区具有实力的互联网服务商。团队致力于为企业提供--站式网站建设、移动端应用( H5手机营销、app软件开发公司、微信开发)、软件开发、信息化解决方案等服务。
一、SQL-Server附加数据库时失败。
1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。
2、异常分析:关于823错误的 SQL-SERVER 中的帮助:
================================
错误 823
严重级别 24
消息正文
在文件 "%4!" 的偏移量 %3! 处的 %2! 过程中,检测到 I/O 错误 %1!。
解释
Microsoft SQL Server 在对某设备进行读或写请求时遇到 I/O 错误。该错误通常表明磁盘问题。但是,错误日志中在错误 823 之前记录的其它核心消息应指出涉及了哪个设备。
3、解决办法:
在SQL-Server企业管理器中,新建同名数据库(这里假设为Test)后,停止数据库,把损坏的数据库文件Data.mdf和Test_log.LDF覆盖刚才新建数据库目录下的Data.mdf和Test_log.LDF,同时删除Test_log.LDF文件;启动数据库服务,发现数据库名Test后面有“置疑”字样。不要紧,打开SQL自带查询分析器,分别执行如下SQL语句:
第一、
exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打开修改系统表的开关 */
第二、
update sysdatabases set status=32768 where name='数据库名' /* 设置数据库状态 */
第三、
DBCC REBUILD_LOG ('数据库名','D:\database\Test_Log.LDF') /* 重建LDF文件 */
第四、
update sysdatabases set status=0 where name='数据库名' /* 重置数据库状态 */
第五、
restore database 数据库名 WITH RECOVERY /* 恢复数据库 */
第六、
exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 关闭打开修改系统表的开关 */
按照此方法操作,应该能修复数据库正常访问了。如果问题依然存在,最笨的一个方法就是新建另一个数据库,把原数据库(Test)各个表的数据导出到新建数据库表中。
============================================================
补充说明:用上面的六步把数据库置疑的问题解决了,但是数据库表里还有损坏的表(inf_gdscode),把坏表导出的时候也不成功。最后在查询分析器里运行:
USE nmgbt_hcxuexipos (数据库名)
GO
DBCC CHECKTABLE ('inf_gdscode',REPAIR_ALLOW_DATA_LOSS)
GO
mysql的话
select * from table limit 21,5
limit 起始值 , 偏移量
select * from table where id=21 and id = 25 这种方法是不行的。
如果是 access或者SQLSERVER的话就只有通过程序来进行操作读取了。
当以下条件之一为真时,将发生此问题:•在"脱机"的模式是一个或多个数据库。
•SQL Server 管理 Studio 无法正确读取一个或多个数据库。因此,无法检索数据库的某些属性。
在这些情况下,对象的集合不在对象资源管理器窗格中,或在对象资源管理器详细信息窗格中。因此,数据库的某些属性不是作为一个组对象的集合中计算的。
注意:如果您不是系统管理员组的成员,则也会发生此问题。
若要变通解决此问题,请执行以下步骤:
关闭该错误消息。
按 F7 键打开的对象资源管理器详细信息窗格。
用鼠标右键单击列标题,并确保选中下面的列:
名称
创建日期
健康策略
所有者
用鼠标右键单击数据库节点,然后单击刷新。
参考:
单单这么个信息无法分析出什么原因
可能是磁盘坏道,或磁盘碎片太多,或者杀毒软件,或者病毒
都有可能
MySQL 分页处理很简单
直接在普通的查询的 最后, 加一个 LIMIT 就可以了。
SELECT
SALE_DATE,
SUM(SALE_MONEY) AS SUM_MONEY
FROM
SALE_REPORT
GROUP BY
SALE_DATE
ORDER BY
SUM(SALE_MONEY) DESC
LIMIT 10, 10
注: LIMIT
接受一个或两个数字参数。参数必须是一个整数常量。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)
syscolumns是sqlserver中的一个系统表,用来记录sqlserver中字段信息的。
SQLServer中SYSCOLUMNS表的各个字段的意义
列名 数据类型 描述
name sysname 列名或过程参数的名称。
id int 该列所属的表对象 ID,或与该参数关联的存储过程 ID。
xtype tinyint systypes 中的物理存储类型。
typestat tinyint 仅限内部使用。
xusertype smallint 扩展的用户定义数据类型 ID。
length smallint systypes 中的最大物理存储长度。
xprec tinyint 仅限内部使用。
xscale tinyint 仅限内部使用。
colid smallint 列或参数 ID。
xoffset smallint 仅限内部使用。
bITpos tinyint 仅限内部使用。
reserved tinyint 仅限内部使用。
colstat smallint 仅限内部使用。
cdefault int 该列的默认值 ID。
domain int 该列的规则或 CHECK 约束 ID。
number smallint 过程分组时(0 表示非过程项)的子过程号。
colorder smallint 仅限内部使用。
autoval varbinary(255) 仅限内部使用。
offset smallint 该列所在行的偏移量;如果为负,表示可变长度行。
status tinyint 用于描述列或参数属性的位图: 0x08 = 列允许空值。 0x10 = 当添加 varchar 或 varbinary 列时,ANSI 填充生效。