文档视界 最新最全的文档下载
当前位置:文档视界 › 金蝶SQL数据库置疑解决方法

金蝶SQL数据库置疑解决方法

金蝶SQL数据库置疑解决方法
金蝶SQL数据库置疑解决方法

解决由于sql2000日志文件引起的“置疑”。

日志有错误--------重新附加提示日志有错误。

日志文件丢失-----丢失了.ldf文件,只有.mdf文件的数据库重建。

步骤:

一、备份“置疑”数据库的数据文件,因为日志文件.ldf出错,可以只备份.mdf文件。

二、打开企业管理器(SQL Server Enterprise Manager),删除“置疑”数据库,如果提示删除错误,可以重启数据库服务器,然后再试。

三、在企业管理器中,新建同名数据库(假如数据库为test),注意建立的数据库名称,还有数据文件名要保持和原数据库一致。

四、停止数据库服务器。

五、将刚才新建数据库生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库.mdf 文件覆盖刚才生成的数据库数据文件test_data.mdf。

六、启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。

七、设置数据库允许直接操作系统表。此操作可以在企业管理器

(SQL Server Enterprise Manager)里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。

use master

go

sp_configure 'allow updates',1

go

reconfigure with override

go

八、设置test为紧急修复模式。

update sysdatabases set status=-32768 where dbid=DB_ID('test')

此时可以在企业管理器(SQL Server Enterprise Manager)里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表。

九、下面执行真正的恢复操作,用dbcc rebuild_log命令来重建数据库日志文件(重建路径根据你实际的数据库路径来)。

dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Da ta\test_log.ldf')

执行过程中,如果遇到下列提示信息:

服务器: 消息5030,级别16,状态1,行 1

未能排它地锁定数据库以执行该操作。

DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。

说明您的其他程序正在使用该数据库,如果刚才您在八步骤中使用企业管理器打开了test 库的系统表,那么退出企业管理器就可以了。

正确执行完成的提示应该类似于:

警告: 数据库'test' 的日志已重建。已失去事务的一致性。应运

行DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。

DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。

此时打开在企业管理器里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。

十、验证数据库一致性。(次步骤可省略)

dbcc checkdb('test')

一般执行结果如下:

CHECKDB 发现了0 个分配错误和0 个一致性错误(在数据库'test'中)。

DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。

十一、设置数据库为正常状态

sp_dboption 'test','dbo use only','false'

如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。

十二、最后一步,我们要将步骤七中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在企业管理器里面恢复,也可以使用如下语句完成

sp_configure 'allow updates',0

go

reconfigure with override

go

对于只有.mdf文件的sql2000数据库恢复,从第三步开始做就行了。

SQL数据库置疑的解决方法

SQL2000数据库置疑的解决方法 首先,在任何操作之前,必须要备份数据库(重要) 一、分离数据库 1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器 2、展开服务器组,然后展开服务器,选中要分离的数据库 3、点击鼠标右键“所有任务》分离数据库”,出现如下窗口 4、点击确定,该选定的数据库就被分离。 5.分离后,把原数据库里面.MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标盘下,例:D盘下 注意事项,只有“使用本数据库的连接”数为0时,该数据库才能分离。所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。

二、附加数据库 1、在附加数据库之前,首先要移动数据库文件 在附加数据库之前,您必须将与数据库关联的 .MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标硬盘下,或是同一服务器的不同硬盘目录下。这两个文件一般位于C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。 2、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器 3、展开服务器组,然后展开服务器 4、右击"数据库",然后选择“所有任务》附加数据库”,弹出窗口 5、输入要附加的数据库的MDF名称。如果不确定文件位于何处,单击浏览("...")搜索。若要确保指定的 MDF 文件正确,请单击"验证"。在"附加为"框内,输入数据库的名称。数据库名称不能与任何现有数据库名称相同。指定数据库的所有者 6、单击"确定"按钮。新附加的数据库的数据库节点即创建在"数据库"文件夹中

exchange装入数据库失败解决办法.pdf

Microsoft Exchange 错误 装入数据库“xxxx”失败。 xxxx 失败 错误: Exchange 无法装入指定的数据库。指定的数据库: WIN2003\xxxx\xxxx;错误代码: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-515) 首先声明我用的是exchange server 2007 还有类似的比如544、455错误等,主要是因为某种原因数据库的日志文件丢失或者错误造 成的。可以通过以下方法来解决。 这里要使用到eseutil.exe这个程序,他在ex的安装目录下的\bin\eseutil.exe 好下面我们来操作来恢复日志文件。 首先关掉杀毒软件,这主要是为了防止它扫描ex安装的目录造成文件锁定之类的问题,然 后在出问题的数据库所在的的目录,比如 \exchange\mailbox\firststroagegroup目录下是数据库所在目录,那么在这个文件夹上 运行cmd,然后再命令窗口中输入 eseutil -p "xxx.edb" ; 然后运行 eseutil -mh "xxx.edb",在显示出来的结果中查看状态 = 干净关闭或者state=cleanshut;然后我们进行下一步运行eseutil /r e00 ,运行后会看到很多log文件,这里最后会提示你最后一个log文件是比如 0ad,缺少了log文件0ae,这说明丢失了0AE.LOG这个文件,不要紧,进行下面操作, (注意)虽然进行后会丢失0ad之后的数据,但是也比加载不了数据库好吧!来吧继续 吧: 找到\exchange\mailbox\firststroagegroup目录下最新的LOG文件,将其改名为LOG文件的最前三个字符,比如LOG文件全名是“e000000000ad”那 么把它改成“e00”,同理如果是“e010000000ad”那么把它改成“e01”,这时你会发现本 文件夹有E01这个文件重复了,备份好原来的那个文件,然 后删除它,再吧0AD改名成E00,好啦大功告成了,去EMC里加载这个数据库试试,是不 是可以了奶? 哈哈其他数据库也这么操作,OWA又可以正常访问了嘎嘎! 下面是微软给出的官方说法,其实跟我的一样,只不过是绕口点: 使用下列方法之一恢复 Exchange 日志文件: 方法 1:如果 Exchange 日志文件被隔离 将 Exchange 日志恢复到包含生产日志文件的文件夹。 启动"Microsoft Exchange 信息存储"服务。如果不缺少任何其他日志文件,将装入数据 库。如果缺少其他日志文件,请查看缺少的日志文件是否位于 防病毒程序的隔离文件夹中。如果日志文件不在隔离文件夹中,请参阅方法 2。 如果 Exchange 日志文件被删除,则必须通过备份还原存储组数据库。然后必须重播日志 文件。若要还原可用的数据库,请执行下列步骤:

SQL语句 日期函数详解与应用

sql查询月记录,一周记录,当天记录时间:2011-08-09 03:48来源:未知作者:admin 点击: 157 次SELECT * FROM 表WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111) ORDER BY dateandtime DESC 本月记录SELECT * FROM 表WHERE datediff(month,[dateadd],getdate())=0 本周记录SELECT * FROM 表WHERE datediff(week,[d SELECT * FROM 表WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111) ORDER BY dateandtime DESC 本月记录 SELECT * FROM 表WHERE datediff(month,[dateadd],getdate())=0 本周记录 SELECT * FROM 表WHERE datediff(week,[dateadd],getdate())=0 当天记录 SELECT * FROM 表WHERE datediff(day,[dateadd],getdate())=0 sql server中的时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数。 select datediff(day,'2004-09-01','2004-09-18') --返回:17 4. datepart 返回代表指定日期的指定日期部分的整数。 SELECT DATEPART(month, '2004-10-15') --返回10 5. datename 返回代表指定日期的指定日期部分的字符串 SELECT datename(weekday, '2004-10-15') --返回:星期五 6. day(), month(),year() --可以与datepart对照一下 select 当前日期=convert(varchar(10),getdate(),120) ,当前时间=convert(varchar(8),getdate(),114)

常用比较日期的SQL语句.

常用比较日期的SQL语句.txt今天心情不好。我只有四句话想说。包括这句和前面的两句。我的话说完了对付凶恶的人,就要比他更凶恶;对付卑鄙的人,就要比他更卑鄙没有情人味,哪来人情味拿什么整死你,我的爱人。收银员说:没零钱了,找你两个塑料袋吧! sql server日期比较日期查询常用语句 关键字: sql sql server日期比较日期查询常用语句 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等,然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个设置决定。第一天(DATEFIRST设定决定了你的系统使用哪一天作为一周的第一天。所有以下的例子都是以星期天作为一周的第一天来建立,也就是第一天设置为7。假如你的第一天设置不一样,你可能需要调整这些例子,使它和不同的第一天设置相符合。你可以通过@@DATEFIRST函数来检查第一天设置。 为了理解这些例子,我们先复习一下DATEDIFF和DATEADD函数。DATEDIFF函数计算两个日期之间的小时、天、周、月、年等时间间隔总数。DATEADD函数计算一个日期通过给时间间隔加减来获得一个新的日期。要了解更多的DATEDIFF和DATEADD函数以及时间间隔可以阅读微软联机帮助。 使用DATEDIFF和DATEADD函数来计算日期,和本来从当前日期转换到你需要的日期的考虑方法有点不同。你必须从时间间隔这个方面来考虑。比如,从当前日期到你要得到的日期之间有多少时间间隔,或者,从今天到某一天(比如1900-1-1之

SQL数据库图书管理系统(完整代码)

作品设计报告书题目:《图书管理系统》 班级网络2012-1班 学号 姓名 课程名称数据库应用技术 指导教师

目录

数据库课程设计报告书 一、设计目标 1.掌握计算机管理信息系统设计的一般方法,主要包括系统分析、系统设计的组织 和实施。 2.关系型数据库管理系统的编程技术,并能独立完成一般小系统的程序设计、调试 运行等工作。 3.培养把所学知识运用到具体对象,并能求出解决方案的能力。 二、数据库存储设计指导思想 在数据库存储设计的无数选择中,简单是系统架构师和DBA 的秘密武器。 简单,有时候就来自于对一个特定的表或表空间没有选择最优I/O 特性,总有这么一种可能,一个富有经验的DBA 拥有高超的存储技能并可以没有时间限制的去为一个非常重要的表或者索引配置一个存储。然而这样做的问题是,就算能达到设计的最佳性能,为了维护原始对象,这也经常造成对一个系统的管理变得更加复杂。好的数据库存储设计的要点是,在一个动态系统上,实现所有目标应该是最初的系统设计的一部分,并应该在数据库运行过程中长期进行。这篇文档简单的最佳实践描述达到了这些目标并且几乎没有性能损失。 三、任务 角色:读者、图书馆馆员、系统管理员;基础数据:读者信息、图书信息、操作员信息;业务数据:借还书记录登记、罚款登记;统计数据:书籍借阅情况统计或读者借阅情况统计。基本要求:利用数据库技术,完成基础数据和业务数据的储存和操作,数据库设计合理1.设计报告:含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL 实现的查询语言及查询结果。 2.上机实现。

1.问题描述 1.1背景 随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。 另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。 提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。 1.2数据需求 图书馆管理信息系统需要完成功能主要有: 1. 读者基本信息的输入,包括借书证编号、读者姓名、读者性别。 2.读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。 3.书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。 4.书籍类别信息的查询、修改,包括类别编号、类别名称。 5.书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。 6.书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。 7.借书信息的输入,包括读者借书证编号、书籍编号、借书日期。 8.借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。 9.还书信息的输入,包括借书证编号、书籍编号、还书日期。 10.还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。 11.超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。

SQLServer2000数据库置疑的解决方法

SQLServer2000数据库置疑的解决方法sql2000中MSDB数据库置疑状态的解决方法 问题:我的SQL Server 2000的MSDB数据库,因为不正常关机,造成了置疑状态,请问采用什么方法能够弥补,解决方法一:你可以采用以下的代码进行修复: USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='msdb' Go sp_dboption 'msdb', 'single user', 'true' Go DBCC CHECKDB('msdb') Go update sysdatabases set status =28 where name='msdb' Go sp_configure 'allow updates', 0 reconfigure with override Go sp_dboption 'msdb', 'single user', 'false' Go 解决方法二:MSDB数据库解决过程 难点:由于MSDB数据库不能删除,将其文件拷出来,再次附加数据库,但新的不能同名,遇到了困难。附加数据库不能叫MSDB,也就是

1:先停止整个数据库,将该数据库的文件msdbdata.mdf和msdblog.ldf拷贝粘贴出来到另一个目录下。 2:将以上的文件再拷贝到另一个目录下,也就是说复制两次。 3:选择数据库右击鼠标 --》所有任务--》附加数据库将复制出的一个备份文件附加上去,其中,数据库名称叫MSDB1,用户是SA或ADMINISTRATOR。 4:将MSDB1数据库备份,备份成一个文件,当时我的叫MSDB。BAK。 5:选择置疑的数据库MSDB,选择恢复数据库,将刚才备份出来的数据库强行恢复到MSDB。 6:问题解决,MSDB库又能正常使用。 完成后赶快将数据库再次备份一次。呵呵。 另附:数据库置疑解决办法 还有,现在修复好了,但昨天的数据丢失了,以前的数据倒还在。难道昨天发生了什么异常情况, 我这里一篇解决数据库质疑的文档,提供给大家,日后备用: SQL SERVER数据库置疑后恢复步骤 1( 恢复步骤: a.将smlog_log.ldf文件备份到其它目录下; b.将源目录下的smlog_log.ldf文件改名为smlog_log_bak.ldf; c.执行以下语句修改数据库的状态: use Master go update sysdatabases set status=32768 where name=’数据库名称’ --修改状态 go shutdown with nowait --停止数据库服务器 go

连接数据库出错处理办法

https://www.docsj.com/doc/4716295108.html,没学好,又要学jsp了.... 1. 安装:SQL Server 2000 Driver for JDBC Service Pack 3 下载安装JDBC SP3 https://www.docsj.com/doc/4716295108.html,/downloads/details.aspx?familyid=07287B11-0502-461 A-B138-2AA54BFDC03A&displaylang=en 里面的SetUp.exe 按照提示安装可以了.成功后有三个文件要使用: c:\program files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar c:\program files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar c:\program files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar 2.测试代码 新建类文件Connect.java. package test; import java.*; import java.sql.Driver; public class Connect{ private java.sql.Connection con = null; private final String url = "jdbc:m icrosoft:sqlserver://"; private final String serverName= "localhost"; private final String port Number = "1433"; private final String databaseName= "DBtest"; private final String userName = "sa"; private final String password = "123456"; // Informs the driver to use server a side-cursor, // which permits m ore than one active statem ent // on a connection. private final String selectMethod = "cursor"; // Constructor public Connect(){} private String getConnectionUrl(){ return

SQL数据库系统期末试题

. 蚌埠学院2013—2014学年第一学期 《SQL 数据库系统》期末考试试题(A ) 注意事项:1、适用班级:11计算机科学与技术(本1、本2、本3班) 2、本试卷共2页。满分100分。 3、考试时间120分钟。 4、考试方式:闭卷 一、选择题(每小题1分,共25分) 1、在SQL SERVER 中,使用update 语句更新数据库表中的数据,以下说法正确的是( b )。 (A )每次只能更新一行数据 (B )每次可以更新多行数据 (C )如果没有数据项被更新,将提示错误信息 (D )更新数据时,必须带有WHERE 条件子句 2、在SQL Server 2008中,要防止大于100的数据被保存到int 类型的列,可以使用( d )。 (A )主键约束 (B )限制约束 (C )外键约束 (D )检查约束 3、在SQL Server 2008 中,有students(学生)表,包含字段:Sid(学号),SName(姓名),Grade(成绩)。现要将所有学员的成绩加10分。下列SQL 语句正确的是( d )。 (A )update students set Grade=Grade+10 where Sid=1 (B )update * set Grade=Grade+10 (C )update * from students set Grade=Grade=Grade+10 (D )update students set Grade=Grade+10 4、在SQL Server 2008 中,有一个product(产品)表,包含子段:pname(产品名称),要从此表中筛选出产品名称为“苹果”或者“香蕉”的记录,下列语句正确的是( c )。 (A ) SELECT*FROM product ON pname=’苹果’OR pname=’香蕉’ (B ) SELECT*FROM product ON pname=’苹果’ AND pname=’香蕉’ (C ) SELECT*FROM product WHERE pname=’苹果’ OR pname=’香蕉’ (D ) SELECT*FROM product WHERE pname=’苹果’ AND pname=’香蕉’ 5、在SQL Server 2008中,附加数据库操作是指( b )。 (A )把SQL Server 数据库文件保存为其他数据库文件。 (B )根据数据库物理文件中的信息,把数据库在SQL Server 2008中恢复。 (C )把所有该数据库表的数据清空。 (D )把数据库删除掉。 6、在SQL Sever 2008中,假设表 users 包含主键列 id ,那么执行“Update users SET id=20 WHERE id=30”,执行的结果可能有( c )。 (A )如果表中含有id 为30的记录,但不包含id 为20的记录,则更新失败。 (B )执行出错,因为主键列不可以被更新。 (C )如果表中同时含有id 为20和id 为30的记录,则更新失败。 (D )如果表中不包含id 为20 和id 为30 的记录,则更新一行记录。 7、在SQL Sever 2008中,查找 student 表中所有身份证号码CardNo 的前三位为010或020的记录,以下语句正确的是( c )。 (A )select * from student where cardno like ‘010%’ and cardno like ‘020%’ (B )select * from student where cardno like ‘010%’ or ‘020%’ (C )select * from student where cardno like ‘0[1,2]0%’ (D )select * from student where cardno like ‘0(1,2)0%’ 8、在SQL Sever 2008中,学生表student 中包含以下字段:学生编号 sid (主键),学生姓名 sName ,现在查询所有姓名重复的记录,以下语句正确的是( b )。 (A )select * from student where count(sid)>1 (B )select a. * from student a, student b where a.sname=b.sname (C )select a.* from student a, student b where a.sname=b.sname and a.sid<>b.sid (D )select * from student group by sName where count(sid)>1 9、在SQL Sever 2008 中,有系统数据库和用户数据库,下列不属于系统数据库的是( d )。 (A ) master (B ) model (C ) msdb (D ) pubs 10、在SQL Server 2008中,外键用于将一个表中的列与另一表中的列关联起来,为了确保引用的完整性,要求( a )。 装 订 线 内 不 要 答 题

SQL日期语句大全

SQL日期语句大全 --本周第一天 SELECT DATEADD(Day,1-(DATEPART(Weekday,getdate())+@@DATEFIRST-1)%7,getdate()) --or select dateadd(wk, datediff(wk,0,getdate()), 0) --本周第一天 select dateadd(wk, datediff(wk,0,getdate()), 6) --上月第一天 SELECT CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111) --上月最后一天 SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()),0)),111)+' 23:59:59' --本月第一天 select dateadd(dd,-datepart(dd,getdate())+1,getdate()) --本月最后一天 select dateadd(dd,-datepart(dd,getdate()) ,dateadd(mm,1,getdate())) --本月天数 select datediff(dd,dateadd(dd,-datepart(dd,getdate())+1,getdate()), dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate()))) --or select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' as datetime)))) --下月第一天 select dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate())) --下月最后一天 SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+2,0)),111)+' 23:59:59' --季度第一天 SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) --季度最后一天(直接推算法) SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1+DATEPART(Quarter,getdate())*3-Month(g etdate()),getdate()),120)+'1') --季度的最后一天(CASE判断法) select DATEADD(Month,DATEPART(Quarter,getdate())*3-Month(getdate()),getdate()) --本月第一个星期一 SELECT DATEADD(wk, DATEDIFF(wk, '', DATEADD(dd, 6 - DAY(getdate()), getdate())), '') --去年最后一天 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))

MySQL数据库系统及应用综合练习

一、单项选择题(只有一个正确答案) 【1】执行语句“SELECT '2008-01-20'+ INTERVAL 2 DAY; ”结果为 A: 2008-01-22 B: 2010-01-20 C: 2008-02-11 D: 2008-03-20 答案: A 【2】下列哪个是不正确的MySQL的变量命名方式 A: _name B: n$ame C: name D: name! 答案: D 【3】字符串‘hel’lo’输出结果为 A: hel'lo B: 'hello' C: hel\'lo D: 'hel lo' 答案: A 【4】关系数据库模型是以下哪种方式组织数据结构 A: 树状 B: 文本 C: 二维表 D: 网状 答案: C 【5】使用下列哪个语句可以删除表中所有数据,但保留表结构 A: truncate table B: rename table C: delete D: drop talbe 答案: A 【6】E-R图设计属于()。 A: 概念结构设计 B: 物理结构设计 C: 逻辑结构设计 D: 需求分析设计 答案: B 【7】执行语句“GREATEST(10,9,128,1)”结果为()。 A: 9

B: 10 C: 128 D: 1 答案: C 【8】在一个关系中,若有这样一个属性存在,它的值能唯一地标识关系中的每一个元组,则称这个属性为 A: 数据项 B: 候选码 C: 主键 D: 主键值 答案: C 【9】数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作。这种功能称为()。 A: 数据控制功能 B: 数据操纵功能 C: 数据管理功能 D: 数据定义功能 答案: B 【10】1999年10月1日在mysql中表示方法错误的是: A: "1999-10-01" B: "1999%10%01" C: "1999\10\01" D: "1999/10/01" 答案: D 【11】两个表中的行按照给定的条件进行拼接而形成新表的运算为 A: 连接 B: 投影 C: 集合 D: 选择 答案: A 【12】向表中插入一个行新的纪录的命令为 A: replace into B: insert into C: replace from D: insert from 答案: B 【13】\n在MySQL中表示 A: " B: 退格符 C: 回车符

SQL server 2008 数据库置疑的处理办法

SQL server 2008 数据库置疑的处理办法 1 把问题数据库备份后直接删除 停掉SQLSERVER服务,把服务器上出问题的数据库, 假设名称为ErrorDB的数据库文件及日志文件备份到其他目录,然后直接将其删除,把其数据库文件及日志文件也删除 2 新建同名数据库 启动SQLSERVER服务,新建同名数据库ErrorDB,文件目录和日志和原来一致 3 用备份的数据库文件替换新的数据库文件 停掉SQLSERVER服务,把备份的数据库文件替换新的数据库文件(只替换数据库文件,不替换日志文件) 启动SQLSERVER服务,打开数据库,这时数据库应该是不能访问的 -------------------设置应急模式、单用户模式、检查修复数据,取消单用户模式 ---------------------- 4 将数据库设置为应急状态 alter database ErrorDB set emergency 执行后,为了保险起见,重新停止、开启的SQLSERVER服务 再打开数据库,已经可以看到里面的内容了,如表,视图,存储过程等 数据库名称后有紧急标志,能看到数据库结构,但无法进行备份等操作 5 将数据库设置为单用户模式 ALTER DATABASE ErrorDB SET SINGLE_USER 6 对数据库进行检查修复 dbcc checkdb(EIMSDb,REPAIR_ALLOW_DATA_LOSS) dbcc checkdb(EIMSDb,REPAIR_REBUILD) 操作后,仍然停止启动SQLSERVER服务(不确定是否需要,我只是为了想无干扰查看执行后的数据库状况)重新打开数据库,已经是正常状态了,没有应急提示了 7 取消单用户模式 exec sp_dboption EIMSDb, N'single', N'false'

常用比较日期的SQL语句

sql server日期比较日期查询常用语句 关键字: sql sql server日期比较日期查询常用语句 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个设置决定。第一天(DATEFIRST)设定决定了你的系统使用哪一天作为一周的第一天。所有以下的例子都是以星期天作为一周的第一天来建立,也就是第一天设置为7。假如你的第一天设置不一样,你可能需要调整这些例子,使它和不同的第一天设置相符合。你可以通过@@DATEFIRST函数来检查第一天设置。 为了理解这些例子,我们先复习一下DATEDIFF和DATEADD函数。DATEDIFF函数计算两个日期之间的小时、天、周、月、年等时间间隔总数。DATEADD函数计算一个日期通过给时间间隔加减来获得一个新的日期。要了解更多的DATEDIFF和DATEADD函数以及时间间隔可以阅读微软联机帮助。 使用DATEDIFF和DATEADD函数来计算日期,和本来从当前日期转换到你需要的日期的考虑方法有点不同。你必须从时间间隔这个方面来考虑。比如,从当前日期到你要得到的日期之间有多少时间间隔,或者,从今天到某一天(比如1900-1-1)之间有多少时间间隔,等等。理解怎样着眼于时间间隔有助于你轻松的理解我的不同的日期计算例子。 一个月的第一天 第一个例子,我将告诉你如何从当前日期去这个月的最后一天。请注意:这个例子以及这篇文章中的其他例子都将只使用DATEDIFF和DATEADD函数来计算我们想要的日期。每一个例子都将通过计算但前的时间间隔,然后进行加减来得到想要计算的日期。 这是计算一个月第一天的SQL 脚本: SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 我们把这个语句分开来看看它是如何工作的。最核心的函数是getdate(),大部分人都知道这个是返回当前的日期和时间的函数。下一个执行的函数DATEDIFF(mm,0,getdate())是计算当前日期和"1900-01-01 00:00:00.000"这个日期之间的月数。记住:时期和时间变量和毫秒一样是从"1900-01-01 00:00:00.000"开始计算的。这就是为什么你可以在DATEDIFF 函数中指定第一个时间表达式为"0"。下一个函数是DATEADD,增加当前日期到"1900-01-01"的月数。通过增加预定义的日期"1900-01-01"和当前日期的月数,我们可以获得这个月的第一天。另外,计算出来的日期的时间部分将会是"00:00:00.000"。 这个计算的技巧是先计算当前日期到"1900-01-01"的时间间隔数,然后把它加到"1900-01-01"上来获得特殊的日期,这个技巧可以用来计算很多不同的日期。下一个例子也

SQL数据库管理系统 A

绝密★启用前学院 学年第二学期期末考试 级专业()《SQL数据库管理系统》试卷A 一、选择题(共20分,每题1分) 1、SQL-server数据库文件的扩展名为()。 A、.ndf B、.ldf C、.mdb D、.mdf 2、数据库文件初始大小,在SQL- server 2000 中默认值为()。 A、1MB B、2MB C、3MB D、4MB 3、SQL- server 2000辅助数据库文件的扩展名为()。 A、.ldf B、.ndf C、.mdb D、.mdf 4、创建用户数据库的Transact-SQL命令是()。 A、create table B、create C、create database D、drop 5、使用Transact-SQL语句创建数据库时,()关键字是用于指定数据库的事务日志文件。 A、log on B、primary C、filename D、filegrowth 6、在SQL中,create table为( )数据库中基本表结构的命令。 A、建立 B、修改 C、删除 D、查询 7、在SQL中,alter table为( )数据库中基本表结构的命令。 A、建立 B、修改 C、删除 D、查询 8、Microsoft公司的SQLServer2000数据库管理系统一般只能运行于( )。 A、Windows平台 B、UNIX平台 C、LINX平台 D、NetWare平台 9、SQLServer2000标准版不支持的操作系统是( )。 A、Windows 2000 Server B、Windows NT Server C、Windows98 D、Windows 2000 Advanced Server 10、在SQL Server2000中.( )为用户建立数据库提供模板。 A、master B、model C、tempdb D、msdb 11、SQL Server系统中的所有系统级信息存储于哪个数据库( )。 A、master B、model C、tempdb D、msdb 12、下列语句中正确的是()。表 score(sti_id,names,math,English,VB) A、select stu_id,sum(math) from score B、select sum(math),avg(VB) from score C、select * ,sum(english) from score D、delete * from score 13、表设计器的“允许空”单元格用于设置该字段是否可输入空值,实际上就是创建该字段的() 约束。 A、主键 B、外键 C、NULL D、CHECK 14、在Transact-SQL语句中,用以修改数据库结构的命令是()。 A、create database B、drop database C、alter database D、alter table 15、在Transact-SQL语句中,用以删除数据库的命令是()。 A、create database B、drop database C、alter database D、drop table 16、整数数据类型int的存储大小为()。 A、1B B、2B C、3B D、4B 17、money型数据的存储大小为()。 A、2B B、4B C、8B D、10B 18、SQL-server数据库中每个表至多可以有()列。 A、1024 B、512 C、256 D、65536 19、数据表的名称最长不超过()个字符。 A、64 B、128 C、256 D、512 20、每个表允许存在()个住键约束。 A、1 B、2 C、3 D、4 二、填空题(共20分,每空1分) 1、数据库系统由__________和__________________两部分组成。 2、在SQL中,主码约束的关键字为__________,外码约束的关键字为____________。 3、数据库管理系统的基本功能包括____________、____________、____________和___________。 4、数据完整性可以分为____________、___________、____________和用户自定义完整性。 5、在SQL中,create view、update和drop view命令分别为_______、_______和_______视图的 命令。 6、在新版的SQL中,表之间的连接共有三种方式,对应的关键字分别为_____________、 ______________和right join。 7、SQL Server采用的结构化查询语言称为__________________。 8、一般可以使用______命令来标识 Transact-SQL批处理的结束。 9、SQL Server中的整数类型包括bigint、________、___________和tinyint四种。 三、简答题(共20分,每个5分) 1、SQL-server注释语句有哪几种符号?各用于什么情况? 2、简述索引的分类。 3、什么叫存储过程?存储过程分为哪三类?

S Q L 数据库出现置疑怎么解决

SQL数据库置疑的解决方法 首先,在任何操作之前,必须要备份数据库(特别注意) 一、分离数据库 1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器 2、展开服务器组,然后展开服务器,选中要分离的数据库 3、点击鼠标右键“所有任务》分离数据库”,出现如下窗口 4、点击确定,该选定的数据库就被分离。 5.分离后,把原数据库里面.MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标盘下,例:D盘下 注意事项,只有“使用本数据库的连接”数为0时,该数据库才能分离。所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。

二、附加数据库 1、在附加数据库之前,首先要移动数据库文件 在附加数据库之前,您必须将与数据库关联的 .MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标硬盘下,或是同一服务器的不同硬盘目录下。这两个文件一般位于C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。 2、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器 3、展开服务器组,然后展开服务器 4、右击"数据库",然后选择“所有任务》附加数据库”,弹出窗口 5、输入要附加的数据库的MDF名称。如果不确定文件位于何处,单击浏览("...")搜索。若要确保指定的 MDF 文件正确,请单击"验证"。在"附加为"框内,输入数据库的名称。数据库名称不能与任何现有数据库名称相同。指定数据库的所有者 6、单击"确定"按钮。新附加的数据库的数据库节点即创建在"数据库"文件夹中

SQL数据库系统期末试题

蚌埠学院2013—2014学年第一学期 《SQL 数据库系统》期末考试试题(A ) 注意事项:1、适用班级:11计算机科学与技术(本1、本2、本3班) 2、本试卷共2页。满分100分。 3、考试时间120分钟。 4、考试方式:闭卷 一、选择题(每小题1分,共25分) 1、在SQL SERVER 中,使用update 语句更新数据库表中的数据,以下说法正确的是( b )。 (A )每次只能更新一行数据 (B )每次可以更新多行数据 (C )如果没有数据项被更新,将提示错误信息 (D )更新数据时,必须带有WHERE 条件子句 2、在SQL Server 2008中,要防止大于100的数据被保存到int 类型的列,可以使用( d )。 (A )主键约束 (B )限制约束 (C )外键约束 (D )检查约束 3、在SQL Server 2008 中,有students(学生)表,包含字段:Sid(学号),SName(姓名),Grade(成绩)。现要将所有学员的成绩加10分。下列SQL 语句正确的是( d )。 (A )update students set Grade=Grade+10 where Sid=1 (B )update * set Grade=Grade+10 (C )update * from students set Grade=Grade=Grade+10 (D )update students set Grade=Grade+10 4、在SQL Server 2008 中,有一个product(产品)表,包含子段:pname(产品名称),要从此表中筛选出产品名称为“苹果”或者“香蕉”的记录,下列语句正确的是( c )。 (A ) SELECT*FROM product ON pname=’苹果’OR pname=’香蕉’ (B ) SELECT*FROM product ON pname=’苹果’ AND pname=’香蕉’ (C ) SELECT*FROM product WHERE pname=’苹果’ OR pname=’香蕉’ (D ) SELECT*FROM product WHERE pname=’苹果’ AND pname=’香蕉’ 5、在SQL Server 2008中,附加数据库操作是指( b )。 (A )把SQL Server 数据库文件保存为其他数据库文件。 (B )根据数据库物理文件中的信息,把数据库在SQL Server 2008中恢复。 (C )把所有该数据库表的数据清空。 (D )把数据库删除掉。 6、在SQL Sever 2008中,假设表 users 包含主键列 id ,那么执行“Update users SET id=20 WHERE id=30”,执行的结果可能有( c )。 (A )如果表中含有id 为30的记录,但不包含id 为20的记录,则更新失败。 (B )执行出错,因为主键列不可以被更新。 (C )如果表中同时含有id 为20和id 为30的记录,则更新失败。 (D )如果表中不包含id 为20 和id 为30 的记录,则更新一行记录。 7、在SQL Sever 2008中,查找 student 表中所有身份证号码CardNo 的前三位为010或020的记录,以下语句正确的是( c )。 (A )select * from student where cardno like ‘010%’ and cardno like ‘020%’ (B )select * from student where cardno like ‘010%’ or ‘020%’ (C )select * from student where cardno like ‘0[1,2]0%’ (D )select * from student where cardno like ‘0(1,2)0%’ 8、在SQL Sever 2008中,学生表student 中包含以下字段:学生编号 sid (主键),学生姓名 sName ,现在查询所有姓名重复的记录,以下语句正确的是( b )。 (A )select * from student where count(sid)>1 (B )select a. * from student a, student b where a.sname=b.sname (C )select a.* from student a, student b where a.sname=b.sname and a.sid<>b.sid (D )select * from student group by sName where count(sid)>1 9、在SQL Sever 2008 中,有系统数据库和用户数据库,下列不属于系统数据库的是( d )。 (A ) master (B ) model (C ) msdb (D ) pubs 10、在SQL Server 2008中,外键用于将一个表中的列与另一表中的列关联起来,为了确保引用的完整性,要求( a )。 装 订 线 内 不 要 答 题

相关文档
相关文档 最新文档