1.两个表A,B,A有数据,B无数据,两个表结构一样,如何把A表的数据复制到B表的数据?

select into B from A

2.有一个表A(id ,logintime)logintime是datetime类型,如何将时间在12月24日的数据取出来,并按logintime排序

select * from 时间 where logintime >='2008-12-24 00:00:00.000'and logintime<'2008-12-25 00:00:00.000'
order by logintime

注:因为datetime类型返回时小时和分钟和秒都是默认为00:00:00.000,所以直接取数据的话只能取到0小时0分钟0秒的记录。

不知道怎么会这样,我用between 取中间的哪一段时间会出错,是不是因为between只能确定一个数值的范围呢?而datetime类

型的判断不了。还有待大家帮助指教...

3.建立一个临时表,有一个字段(id)int类型,如何将1~10000插入表中的字段id

create table #临时表(id int)
declare @n int
set @n=1
while @n<=10000
begin
insert into #临时表
values(@n)
set @n=@n+1
end
select * from #临时表

注:临时表分为两种,一种是全局临时表,一种是普通临时表,全局临时表对于整个数据库的用户都可以使用,而普通临时表只针对创建他的用户使用

临时表的内部处理是采用存储过程对表进行封装,临时表的有点是能够节省系统的资源提高速度,因为当你停止服务器的运行时,该临时表就会被删除。

由于临时表的内部处理小虾还不懂,希望各位大哥哥多多指教...谢谢!

4.写出系统变量

变量分为两种,一种是系统变量,一种是局部变量

@@error:返回最后执行的tql错误代码,返回值为integer,通常用0和!0来判断@error,0表示代码正确,!0表示代码错误.

@@rowcount:返回受上一句语句影响的行数,除了定义变量语句外,其他语句都可以影响其值.

@@identity:返回最后插入的标识值,返回类型为numeric(数字)

5.有关存储过程的编程

--创建存储过程

create procedure p_date_productinfo(
@o_date datetime,
@p_no varchar(20),
@total_quantity int output,
@total_money money output)
as
select @total_quantity=sum(o_quantity),@total_money=sum(o_quantity)*p_price
from orders,products
where orders.p_no=products.p_no and o_date=@o_date and orders.p_no=@p_no
group by orders.p_no,p_price

--使用存储过程
declare @total_quantity int
declare @total_money money
exec p_date_productinfo'2005-08-09','0910810004',@total_quantity output,@total_money output
print convert(int,@total_quantity)
print convert(int,@total_money)
注:这是我昨晚写的一条存储过程语句,功能也很简单,在这不多说,我觉得存储过程的应用跟c语言里面的函数差不多,都是

通过输入和返回来实现他的功能.但是在使用时有点麻烦,要定义输出参数,感觉到有一种数据冗余,对于学数据库的来说,数据

冗余是很敏感的...其他版本我就不知道,至少2000是这样的.哈~

6.备份一个表,导出文本文件

用sql备份表和导出我就不知道怎么弄了,我只会用企业管理器备份和导出.

7.在T-SQL中,having,case,rollup的作用

having:主要用于聚合函数(sum,avg,max,count,min),如果用到sum和count的话,要对目标字段进行分组,

就是把相同字段的分成一个组,然后通过having对其进行筛选,having和where的区别就是作用的对象不相同,

where 后面跟的是字段的筛选条件,而having跟的是分组后组的筛选条件。

case:主要运用于多支选择结构。具体语法有 case 字段名a when 字段名a then 字段名b...else 其他

还有一种搜索的case语句,结果如上,但是它会对目标表进行筛选,在第一个条件下成立后,将它移除,然后进行

第二次判断.例如:

select *,等级=case

when grade>=90 then '优秀'

when grade>=80 then '良好'

...

else '不及格'

end

from score where '条件'

在进行第一次判断后,会把>=90的排除,第二次判断相当于进行between 80 and 89。

**rollup:对于这个我没怎么使用过它 ,只知道它可以用于数据汇总,会把你的字段值独一置空而进行数据汇总,

具体的用法我也没试过,我会去尝试它的,如果哪个大哥对其了解较深刻的话,给小弟一些信息参考。

8.对题2建立索引。create clustered index idx时间 on A(id)

注:索引分两种,一种是聚集索引,一种是非聚集索引。聚集索引在每个表中只可以建一个,而非聚集索引可以建249个。

一个表的存储由两部分组成,一部分存储表的数据页面,一部分存放表的索引页面。索引页面相对来说比较小,所以用

索引搜索数据比较方便。

聚集索引主要按物理页面的数据顺序存储,例如书的目录就是建聚集索引。

非聚集索引按逻辑页面的数据存储,也就是利用指针指向另一个字段。索引页面存储了字段值和地址值。例如对日记进行分类,

一类是天气晴,一类是天气雨,it类或者生活类,这就相当在日记里面建立了非聚集索引,可以更方便的让你找到每一页。

9.将表中的所有数据删除,该语句与delete有什么区别?

truncate table 表名

该语句与delete的区别是:它可以一次性的删除表中所有的数据,而delete一次只可以删除一行。用truncate可以节省记录

日志里面资源,不用单独记录多条delete,可以减少备份日志里面的压力。

10.触发器的作用

触发器主要是为了不让用户把不必要的数据写入表中

触发器有两种类型:一种是after触发器,一种是instead of 触发器

after触发器:主要是针对insert,delete,update操作,当执行某一种操作时,触发器就会自动的触发执行

instead of 触发器:主要应用于视图,当对视图进行修改时,触发器也自动执行,但不响应里面的insert,delete,update操作。

**instead of 触发器可以修改多个表或视图中的数据,可以同时更新。

触发器的主要应用是通过inserted,deleted这两个临时表实现的。可以从inserted表中找到用户新插入的值,可以在deleted表中

找到用户删除的值。在检索用户是否更新表中的数据时,可以用系统变量@@rowcount对其进行判断,当@@rowcount=0时,表示

对表中的数据更新错误,或者找不到数据。当@@rowcount=1时,表示返回一行更新的记录,表示更新了一行,假如不能级联更新或

删除时,可以用rollback对其进行回滚。insert触发器也有代替check约束的功能,主要是对inserted表中的插入项进行判断,在加上

rollback就可以实现check约束了。

**有待实现补充:rollup 和 instead of 触发器的例子应用!

**由于临近考试,有些东西做的不足请大家原谅!

转载于:https://www.cnblogs.com/magicchaiy/archive/2009/01/03/1367452.html

小虾的sql server 2000 成长之路相关推荐

  1. SQL SERVER 2000安装遇到的问题小汇总(转载)

    [1]安装程序配置服务器失败 需要修改下注册表 1 打开注册表  在"开始"--"运行"键入 "regedit"   2 删除注册表如下键值 ...

  2. SQL server 2000 和2005中怎么让ldf文档变小

    SQL server 2005 打开数据库-- 新建查询--输入以下两条命令: Dump transaction databasename with no_log backup log databas ...

  3. 使用 SQL Server 2000 索引视图提高性能1

    什么是索引视图? 许多年来,Microsoft SQL Server" 一直都提供创建虚拟表(称为视图)的功能.在过去,这些视图主要有两种用途: 提供安全机制,将用户限制在一个或多个基表中的 ...

  4. SQL Server 2000 索引视图提高性能2

    创建索引视图 创建索引视图所需的步骤与视图的成功实现密不可分. 确保将在视图中引用的所有现有表的 SET 选项都正确. 创建任何新表和视图之前,确保会话的 SET 选项已正确设置. 确保视图定义是确定 ...

  5. 《MS SQL Server 2000管理员手册》系列——8. 管理 Microsoft SQL Server 服务

    8. 管理 Microsoft SQL Server 服务 SQL Server 服务组件 使用SQL Server服务管理员 使用 Windows 2000 服务控制管理员 使用 SQL Serve ...

  6. window xp系统安装php环境_Windows Server 2003及XP系统如何安装SQL Server 2000数据库?

    年头年初节假日就是小编的梗,忙得不可开交,这不越冷越刮风昨天服务器又崩了,折腾了一天安装好Windows Server 2003和IIS(这系统是有点老了,主要是单位机子和各系统也有点年头了,没办法) ...

  7. 使用Microsoft SQL Server 2000全文搜索功能构建Web搜索应用程序 --作者:Andrew B. Cencini...

    [摘要]了解如何充分利用SQL Server 2000的全文搜索功能.本文包含有关实现最大吞吐量和最佳性能的几点提示和技巧. 概述 使用Microsoft© SQL Server 2000的全文搜索功 ...

  8. Microsoft SQL Server 2000整合规划

    Microsoft SQL Server 2000整合规划 更新日期: 2004年06月24日 SQL Server技术文章 作者:Allan Hirt 投稿人:Tom Davidson和Shaun ...

  9. SQL Server 2000中的并行处理和执行计划中的位图运算符

    SQL Server 2000中的并行处理和执行计划中的位图运算符 摘抄自:SQLServer 2000并行处理和位图简介 刘志斌 并行查询介绍 Degree of Parallelism(并行度) ...

最新文章

  1. 算法---------前 K 个高频元素(Java版本)
  2. 如何修改容器的一些参数
  3. 1.Prometheus快速入门,Prometheus+node_exporter安装
  4. Django扩展自定义manage命令
  5. python web开发-flask访问请求数据request
  6. SSH远程登录失败,提示“Password authentication failed”
  7. Struts2源码阅读(六)_ActionProxyActionInvocation
  8. mysql命令:set sql_log_bin=on/off
  9. IMPORT MULTIPLE JS
  10. 怎么把电脑计算机桌面调出来,手把手教你电脑怎么设置屏保
  11. 更改docker ip
  12. 使用宏将xlsx格式文件批量转为xls格式文件
  13. 服务器linux攻击方法,Linux操作系统中实现DDOS攻击的方法
  14. python word文档文字批量替换与删除
  15. 好看的皮囊 · 也是大自然的杰作 · 全球高质量 · 美图 · 集中营 · 美女 · 2017-08-23期...
  16. 惠普电脑无故出现第三方屏保
  17. Spring - 解决 SpringUtil getBean NPE 问题
  18. 山东工商学院计算机2军训,山东工商学院举行2018级新生开学典礼暨军训动员大会...
  19. ADSP-21489的图形化编程详解(6:一段 EQ,24 段 EQ,31段EQ)
  20. Windows10环境下自己配置Pytracking详细流程(有参考博客)

热门文章

  1. 无废话Git——概念与本地服务器提交
  2. windows系统远程桌面相关内容
  3. MATLAB图像处理之图像边缘提取
  4. mysql浮点数据怎么_MySQL数据浮点类型的实际应用操作
  5. Linux中Docker的yum源与镜像加速器
  6. SQLyog客户端常用快捷键
  7. 汉诺塔的java实现及一种思路
  8. struts1.2上传文件到服务器
  9. flink 三种时间机制_Flink时间系列:Event Time下如何处理迟到数据
  10. MySQL中varchar类型字段隐式转换造成多删除数据