1)
假定有一个用户表,表中包含字段:
userid
(int)
、
username
(varchar)
、
password(varchar)
、等,
该表需要设置主键,以下说法正确的是()。(选择两项)
a)
如果不能有同时重复的
username
和
password
,那么
username
和
password
可以组合在一起作为主键。
b)
此表设计主键时,根据选择主键的最小性原则,最好采用
userid
作为主键。
c)
此表设计主键时,根据选择主键的最小性原则,最好采用
username
和
password
作为组合键。
d)
如果采用
userid
作为主键,那么在
userid
列输入的数值,允许为空。
2)Microsoft SQL Server 2000
在安装的时候就创建的示例用户数据库包括()。(选择两项)
a)Pubs
b)Master
c)Northwind
d)Msdb
3)
以下()语句从表
TABLE_NAME
中提取前
10
条记录。(选择一项)
a)select * from
TABLE_NAME where rowcount=10
b)select
TOP ......
最近需要测试一个项目, 需要SQL SERVER 2008, 在微软下载评估版后进行安装
中间发现了种种安装失败的问题,对该过程进行了记录,希望给遇到此类问题的朋友们共同探讨,有所帮助:
1. WINDOWS 2003, WINDOWS 7 新装的时候可行,但是如果有删除后重新安装则无法再次安装
2. 根据网上无数先驱的失败提示, 进行了无数重试,包括更改安装文件目录,修改注册表权限等均不能解决
3. 测试制作集成SP1和HOTFIX
首先下载有关补丁
下载SQLServer2008SP1-KB968369-x86-CHS.exe
下载SQLServer2008SP1之后的SP1的HOTFIX, 注意需要用邮件收取解压密码,看来微软是周期改变补丁的解压密码,防止有人做自动更新
4. 解压
SQLServer2008SP1-KB968369-x86-CHS.exe /x:D:\SP1-PCU
SQLServer2008-KB969099-x86.exe /x:D:\SP1-CU
SQLServer2008-KB970315-x86.exe /x:D:\SP1-CU
SQLServer2008-KB973601-x86.exe /x:D:\SP1-CU
SQLServer2008-KB976761-x86.exe /x:D:\SP1-CU
5. 集成安装
Setup.exe /PCUSource=D:\SP1-PCU /CUSource=D:\SP1-CU
这一步执行失败,提示如 ......
--exec [P_AutoGenerateNumber] 'reception_apply','generate_code','',7
/*
过程说明:生成自动编号
创建时间:2010年1月12日
作者:feng
debug:尚未考虑编号溢出情况
*/
ALTER proc [P_AutoGenerateNumber]
(
@tableName varchar(100)='meeting_apply', --表名
@byteName varchar(100)='generate_code', --字段名
@Remark varchar(10)='M', --标示
@subLen int=4 --截取长度
)
WITH ENCRYPTION
as
declare @SQLString NVARCHAR(4000)
declare @OutputValue int
declare @subLenVar NVARCHAR(20)& ......
sql语句查询
表结构是这样:
ID 姓名 性别
1 张三 男
2 王四 男
3 丽丽 女
4 张三 男
5 赵柳 男
6 高洁 男
7 王四 女
8 高洁 女
9 张三 女
怎么能用一条SQL语句查询出如下的结果
姓名 人员个数 男人数 女人数 包含ID
张三 3 2 1 1,4,9
王四 2 1 1 2,7
丽丽 1 0 1 3
高洁 2 1 1 & ......
闪回
1 特征
闪回数据库只是逻辑数据遭到破坏时的手段。
闪回数据库日志必须在数据库恢复区中创建。
闪回日志不需要归档,不能用于物理恢复。
执行闪回数据库操作时,背景进程RVWR就启动了。
2 使用闪回数据库
3种工具,SQL*Plus,RMAN,OEM。
(1)要求
为了使用闪回数据库,数据库必须处于归档日志模式。
(2)从SQL*Plus中闪回数据库
① 用户必须使用as sysdba连接到数据库。
② 关闭数据库
shutdown immediate;
③ 安装数据库
startup mount exclusive;
④ 使用alter system命令,设置db_flashback_retention_target为一个目标值,该值指定了可以闪回的时间上限(分钟)
alter system set db_flashback_retention_target = 数字;
⑤ 使用alter database 设置允许闪回
alter database flashback on;
⑥ 使用alter database open命令打开数据库。
⑦ 关闭数据库,重新安装数据库。
⑧ 使用flashback database to timestamp或flashback database to scn 数字 执行闪回操作。
⑨ 使用alter database open read only。
⑩ 确认闪回成功后,执行alter database open resetlog
......
闪回
1 特征
闪回数据库只是逻辑数据遭到破坏时的手段。
闪回数据库日志必须在数据库恢复区中创建。
闪回日志不需要归档,不能用于物理恢复。
执行闪回数据库操作时,背景进程RVWR就启动了。
2 使用闪回数据库
3种工具,SQL*Plus,RMAN,OEM。
(1)要求
为了使用闪回数据库,数据库必须处于归档日志模式。
(2)从SQL*Plus中闪回数据库
① 用户必须使用as sysdba连接到数据库。
② 关闭数据库
shutdown immediate;
③ 安装数据库
startup mount exclusive;
④ 使用alter system命令,设置db_flashback_retention_target为一个目标值,该值指定了可以闪回的时间上限(分钟)
alter system set db_flashback_retention_target = 数字;
⑤ 使用alter database 设置允许闪回
alter database flashback on;
⑥ 使用alter database open命令打开数据库。
⑦ 关闭数据库,重新安装数据库。
⑧ 使用flashback database to timestamp或flashback database to scn 数字 执行闪回操作。
⑨ 使用alter database open read only。
⑩ 确认闪回成功后,执行alter database open resetlog
......
当SQL Server截断事务日志时,它仅仅是在虚拟日志文件中做个标记,以便不再使用它,然后准备以重用形式来做备份(假如运载在完整或是批量日志恢复模型)。也就是说,在使用简单恢复模型时,事务日志包括如下的日志记录:
当checkpoint发生时,虚拟日志文件1、2不再被使用,因为事务1、2已经被提交了,而且日志记录也不再需要回滚了。然后SQL Server重用虚拟日志文件1、2,如下图:
这就是我们所熟知的事务日志截断。基本上,事务日志的活动区间已经被截断了,但是事务日志的物理大小不会改变,除非数据库使用自动收缩的属性设置。在这种情况下,事务日志就会尽可能的在物理上进行周期性的收缩。
为了物理上减小事务日志的大小,收缩事务日志作为已知的方法,你在使用时可以选择下面选项中的一种:
执行 DBCC SHRINKDATABASE命令
执行 DBCC SHRINKFILE命令
设置数据库的事务日志自动收缩选项
需要注意的是,事务日志仅仅能收缩到虚拟日志文件的边界。下面是个例子。
我新建了一个数据库,它有1MB的事务日志空间,5MB的自动增长空间。运行DBCC LOGINFO显示如下:
这里有四个可变大小的虚拟日志文件。然后我输入一些数据,这会使事务日志 增长到5MB:
......