sql server中的sysObjects
sysObjects ( Name sysname, --object 名称 id int, --object id xtype char(2), -- object 类型 type char(2), -- Object 类型(与xtype 似乎一模一样? 有点郁闷…) uid smallint, -- object 所有者的ID ... --其他的字段不常用到。 ) sysobjects的xtype 代表的对象类型。可以是下列对象类型中的一种: C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 L = 日志 FN = 标量函数 IF = 内嵌表函数 P = 存储过程 PK = PRIMARY KEY 约束(类型是 K...
SQL Server数据库恢复
很多数据恢复工程师包括一些数据恢复技术爱好者经常会问同样一个问题:“数据一旦被覆盖了,还能不能恢复呀?我听说国外能恢复被覆盖以后的数据,据说只要是覆盖操作在7次以内,都能恢复出来,国内有没有这种技术呀?”这种问题困惑很多人,也困惑很多年,到现在也只是停留在传说阶段,没有人能够证实!市面上有一些数据擦除工具,在进行数据毁灭擦除的时候往往有一个选项:擦除1遍?擦除3遍?擦除7遍?我在怀疑是不是一种心理作用。在我目前认知的数据恢复技术领域,我坚决的认为:只要覆盖一遍,数据就不可恢复!如...
计算任意两个时间之间的星期几的次数
任意两个时间之间的星期几的次数-横.sql SQL code if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_weekdaycount]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_weekdaycount] GO /*--计算任意两个时间之间的星期几的次数(横向显示) 本方法直接判断 @@datefirst 做对应处理 不受 sp_language 及 set datefirst 的影响 /*--调用示例 select * from f_weekdaycount('2004-9-01','2004-9-02') --*/ create function f_weekdaycount( @dt_begin datetime, @dt_end dat...
通过日志还原数据库(1)
从日志回复数据库 :自己一步一步按照说明试着看 --创建测试数据库 CREATE DATABASE Db GO --对数据库进行备份 BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT GO --创建测试表 CREATE TABLE Db.dbo.TB_test(ID int) --延时1秒钟,再进行后面的操作(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败) WAITFOR DELAY '00:00:01' GO --假设我们现在误操作删除了 Db....
NULL对IN查询的影响
--1. NULL 对 IN(NOT IN) 查询的影响 --测试数据 DECLARE @1 TABLE(col1 int) INSERT @1 SELECT 1 UNION ALL SELECT NULL UNION ALL SELECT 2 DECLARE @2 TABLE(col1 int) INSERT @2 SELECT 1 --查询 SELECT [@1总记录数]=COUNT(*) FROM @1 --结果: 3 SELECT [@1在@2表中存在的记录数]=COUNT(*) FROM @1 a WHERE col1 IN(SELECT col1 FROM @2) --结果: 1 SELECT [@1在@2表中存在的记录数]=COUNT(*) FROM @1 a WHERE col1 NOT IN(SELECT col1 FROM @2) --结果: 1 --在@2中插入一条NULL值 INSERT @2 SE...
根据时间不同来触发
/******************* 功能:根据时间更改人物 K1 的倍数 时间:2010-11-12 作者:龙歌网络 ************************/ USE PS_GameData GO --判断是否存在触发器 if exists(select name from sysobjects where name='trig_Chars_Up_K1') drop trigger trig_Chars_Up_K1 go --创建触发器 create trigger trig_Chars_Up_K1 on Chars for Update as --声明要用到的变量,userid用户名,times倍数 declare @UserID varchar(50),@times int select @UserID=[UserID] from inserted begin if (Datepart(weekday,...
SQL Server中的数据存储形式
sql server 是一个关系数据库管理系统,它最初是由microsoft 、sybase 和ashton-tate三家公司共同开发的,于1988 年推出了第一个os/2 版本。在windows nt 推出后microsoft与sybase 在sql server 的开发上就分道扬镳了,microsoft 将sql server 移植到windows nt系统上专注于开发推广sql server 的windows nt 版本,sybase 则较专注于sql server在unix 操作系统上的应用。 sql server 2000 是microsoft 公司2000年推出的sql server 数据库管理版本。该版本继承了sql server 7.0 版本的优点同时又比它增加了许多更...
Access、MySQL 以及 SQL Server数据类型区别
Microsoft Access、MySQL 以及 SQL Server 所使用的数据类型和范围。 Microsoft Access 数据类型 数据类型 描述 存储 Text 用于文本或文本与数字的组合。最多 255 个字符。 Memo Memo 用于更大数量的文本。最多存储 65,536 个字符。 注释:无法对 memo 字段进行排序。不过它们是可搜索的。 Byte 允许 0 到 255 的数字。 1 字节 Integer 允许介于 -32,768 到 32,767 之间的数字。 2 字节 Long 允许介于 -2,147,483,648 与 2,147,483,647 之间的全部数字 4 字节 Single 单精度浮点。处理大多数...
提高insert插入速度
SQL中insert是我们常用到的一个句子了,平时都会使用insert插入数据语句,特别是有时候需要一个大批量的数据来做测试,一条一条insert将会是非常慢的,那么我们如何让我们的inser更快呢。 先看个例子: 我们需要在如下这个表中插入测试数据,包含两列,一个是itemid,一个是itemname。如果向这个表中插入103,680,000 条记录,普通的插入方法可能需要20多天才能完成,但是用这里介绍的新方法在5个小时内就能够完成。 先看一般的数据插入方法,假设我们向上表中插入100000 条数据: 复制代码代码如下: CREATE TABLE #tempTab...
SQL Server中 索引的使用
使用索引来更快地遍历表。 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。 一般来说: ①.有大量重复值、且经常有范围查询(between, >,< ,>=,< =)和order by、group by发生的列,可考虑建立群集索引 ②.经常同时存取多列,且每列都含有重复值可考虑建立组合索引; ③.组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。