利用IDENTITY()函数重新为列生成序列
假设有个表table_tmp(id, name, info),其数据中id值随有一定顺序但并不是按序列排列,现在想让其id列按序列重新生成。可以使用以下办法:[@more@]1、select IDENTITY(int, 1, 1) as id, name, info into my_table from table_tmp 使用IDENTITY()函数为id生成从1开始的序列,并且把数据插入到新表my_table中。2、truncate table table_tmp or delete from table_tmp 删除掉原表数据3、select * into table_tmp from my_table 把新数据添加回原表,如果原表的id是
两分钟让你明白什么是ERP
唯一性约束和唯一性索引的区别
“唯一性约束”和“唯一性索引”是不同的。一、 建立唯一性约束的语法,使用create table或者alter table1. 在字段级约束定义-- 命名create table tmp_table( a int constraint pk_tmp_table_a primary key, b varchar(10) constraint uq_tmp_table_b unique )-- 不命名create table tmp_table( a int primary key, b varchar(10) unique)2. 在表约束定义-- 命名create table tmp_table( a int, b varchar(10), constraint pk_tmp_table_a primary key(a), constraint uq_tmp_table_b unique(b A
SQL Server 2000的安全策略(二)
8、以最低权限帐户身份进行开发 通常情况下,保护开发服务器安全的最佳方法,就好似它正在生产环境中运行那样对它进行保护。您离这个目标越接近,那么就可以越自信于您开发的代码可以在一个安全的生产环境中正常运行。 在开发过程中,大家都着迷于使用具有 sysadmin 或 dbo SQL Server 权限的帐户,直到部署之前才转换为一个权限更低的帐户。使用这种方法存在着一个问题:将设计人员的权限集还原为最低的所需权限集与在开发应用程序过程中编写这些权限集相比,前者要困难得多。 &
SQL Server 2000的安全策略(一)
数据库是电子商务、金融以及ERP系统的基础,通常都保存着重要的商业伙伴和客户信息。大多数企业、组织以及政府部门的电子数据都保存在各种数据库中,他们用这些数据库保存一些个人资料,比如员工薪水、个人资料等等。数据库服务器还掌握着敏感的金融数据,包括交易记录、商业事务和帐号数据,战略上的或者专业的信息,比如专利和工程数据,甚至市场计划等等应该保护起来防止竞争者和其他非法者获取的资料。数据完整性和合法存取会受到很多方面的安全威胁,包括密码策略、系统后门、数据库操作以及本身的安全方案。但是数据库通常没有象操作
四招打开职场知名度
来自:http://finance.sina.com.cn 2005年03月31日 19:07 网妖网 和老板一同搭乘电梯,老板不知道我是谁;我日以继夜的加班工作,功劳却不是我的……觉得很闷吗?“秀出自己是你个人的责任,你必须让人家知道你是谁,以及你做了些什么事,”佩姬-克劳斯(Peggy Klaus)在她最新的著作《智卖智夸》(Brag)中写道。 该怎么做呢?以下是克劳斯的建议: 1.随时随地准备好。 跨出自夸的第一步其实很简单。每天提醒自己4件事:自己的姓名、职衔、负责的任务、以及眼前进行的工作积极肯定的一面。把这些内容放在嘴边,随时有说出
查询分析器不能单步调试的的原因及解决方法
具体步骤如下: 1、将服务器【身份验证】属性设置成【混合模式】(window与sql身份验证) 2、在【控制面板】中打开【服务】将【MSSQLSERVER】服务打开【属性】,选择【登录】页面,将登录身份设置成服务器本地帐号和该帐号密码,如administrator,密码123; 3、重新启动sqlserver服务,此时的服务指的是【SQL服务管理器】中的SQL SERVER服务; 假设【帐号】设置为administrator 此时达到的效果是:服务器本地帐号administrator与客户端上的administrator(并且该帐号的密码要与服务器密码相同)可以通过【查询分析器】进行调试; 如果想让
@@IDENTITY、SCOPE_IDENTITY()和IDENT_CURRENT()的辨析
相同点:它们都返回插入到IDENTITY列中的值不同点:A. @@IDENTITY不受作用域(存储过程、触发器、函数或批处理)的限制。返回最后一个插入的IDENTITY值。如果在程序中不同的作用域插入的表不同,那么返回最后一个表插入的IDENTITY值。例如:作用域A(存储过程)在表T1上插入IDENTITY列,而T1上的触发器会在T2上插入IDENTITY列。则用@@IDENTITY返回T2上插入的IDENTITY值。B. SCOPE_IDENTITY()受作用域的限制,只返回当前作用域中的最后一个IDENTITY值。上例中,如果在存储过程
MS SQL锁机制
锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 不可重复读A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致 并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些操作以避免产生数据不一致
关于外联接(Outer Join)及其他
一 使用外联接以前在Oracle中用=(+)和(+)=来进行左外联接和右外联接;后来用SQL Server时用*=和=*进行外连接左外联接和右外联接;现在决定用SQL-92的标准方法:[OUTER] JOINOUTER是可以省略的。LEFT OUTER JOIN 或 LEFT JOIN 表示左外联接 RIGHT OUTER JOIN 或 RIGHT JOIN 表示左外联接 FULL OUTER JOIN 或 FULL JOIN 表示左外联接外联接的意思不用多说,我们都懂,但是JOIN到底怎么用呢?没有找到很好的资料,只能从例子中学习了:1、
汽车驾驶完全手册
起动之前先坐稳,车内仪表检查准。 油压电压都稳定,切记调准后视镜。 一拧钥匙一脚油,手脚配合要紧凑。 踩住离合挂倒档,松开手闸向后望。 出库倒车要注意,来往车辆看仔细。 轻踩油门慢离合,平稳启动不熄火。 车身出库快打轮,车尾方向要对准。 车身摆正快回轮,踩住离合刹车稳。 移库倒车要注意,宽窄程度看仔细。 位置狭窄分次移,车身两侧留余地。 拐弯倒车须留意,内侧车身看仔细。 倒车镜中测距离,注意回轮有时机。 调头倒车要安全,不让后轮出边线。 操纵打轮要熟练,
SQL Server不可以增加非空列
ALTER TABLE only allows columns to be added that can contain nulls or have a DEFAULT definition specified. ALTER TABLE 只允许添加可包含空值或指定了 DEFAULT 定义的列。如果:IF EXISTS(SELECT 1 FROM SYSOBJECTS WHERE NAME = N'tab_test') AND NOT EXISTS(SELECT 1 FROM SYSOBJECTS A, SYSCOLUMNS B WHERE B.ID = A.ID AND B.NAME = N'col_test' and a.name = N'tab_test') alter table tab_test add col_test smallint NOT NULLGO将会收到错误信息。要增加非空列怎么办呢?第1种办法:在add column时指定列有defaultalter tab
通用自动为某表某字段生成拷贝名称的存储过程
当在表tab(id, name...)中生成一条新纪录,其他字段都与原纪录一致,但name字段必须按name, Copy of name, Copy (2) of name, Copy (3) of name的规律变化,用下面的SP可以轻松达到此目的。它是通用的,可以针对任何表的varchar(char)类型的字段,生成新名称。-- SP_generate_copy_object_name-- ============================================-- Procedure Name : SP_generate_copy_object_name-- Function : generate a object name that is copied-- Failure return : ''-- Success return : the new object name---- Para
外键技术
一、语法FOREIGN KEY 约束主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。FOREIGN KEY 约束并不仅仅只可以与另一表的 PRIMARY KEY 约束相链接,它还可以定义为引用另一表的 UNIQUE 约束。FOREIGN KEY 约束不允许空值,但是,如果任何组合 FOREIGN KEY 约束的列包含空值,则将跳过 FOREIGN KEY 约束的校验。FOREIGN KEY 可以引用同一表中的其它列(自引用)。一个表最多可包含 253 个 FOREIGN KEY 约束。每个表在其 FOREIGN KEY 约束中最多可以引用 253 个不同的表。列级 FOREIGN KEY 约束放在列说明部分,表级
SQL SERVER字符集的研究
一、 试验归类测试SQL:------------------------------------------------------------drop table acreate table a(a varchar(2))insert into a values('a')insert into a values(N'a')insert into a values('深圳')insert into a values(N'深圳')select a, len(a), datalength(a) from adrop table #acreate table a(a varchar(2))insert into #a values('a')insert into #a values(N'a')insert into #a values('深圳')insert into #a values(N'深圳')select a, len(a), datalength(a) from #a-----------------------------------------
修复identity 类型字段数据的跳跃(转)
修复identity 类型字段数据的跳跃(译) 内容提要 1、引言 2、dbcc object_atts 3、下载'sp_identity' 存储过程 4、使用sp_identity显示使用identity 类型字段的表 5 使用sp_identity显示当前表的 identity 数字 6、使用sp_identity 修改表的 identity数字 1引言 在sybase 中,有一个使用未公开的dbcc 命令 ,即 dbcc object_atts 快速修复identity 跳跃的方法,因为 dbcc object_atts 比较难于使用,而存储过程 sp_identity 更容易完成你的问题 警告:本文的方法没有出现在sybase 发布的文档中,并且没有被 sybase 支持,使用与否取决定你
1.误会; 2.钉子; 3.且慢下手; 4.宽大
请照顺序读 : 1.误会; 2.钉子; 3.且慢下手; 4.宽大 1.误会 : 早年在美国阿拉斯加地方,有一对年轻人结婚,婚後生育, 他的太太因难产而死,遗下一孩子。 他忙生活,又忙於看家,因没有人帮忙看孩子,就训练一只狗, 那狗聪明听话,能照顾小孩,咬著奶瓶喂奶给孩子喝,抚养孩子。 有一天,主人出门去了,叫它照顾孩子。 他到了别的乡村,因遇大雪,当日不能回来。 第二天才赶回家,狗立即闻声出来迎接主人。他把房门开一看,到处是血, 抬头一望,床上也是血,孩子不见了,狗在身边,满口也是血, 主人发现这种情形,以为狗性发作,把孩
关于使用多表做update的语法
一、当用一个表中的数据来更新另一个表中的数据,T-SQL提供多种写法(下面列出了二种),但建议用第一种写法,虽然传统,但结构清晰。并且要注意,当用一个表中的数据来更新另一个表中的数据时,二个表一定要有关联!1.update t1 set t1.c2 = t2.c2from t2 where t1.c1 = t2.c12.Update t1 set t1.c2 = t2.c2from t1 inner join t2 on t1.c1 = t2.c1二、FROM 子句中指定的表的别名不能作为 SET column_name 子句中被修改字段的限定符使用。例如,下面的内容无效:UPDATE titles SET t.ytd_
SQL Server中易混淆的数据类型
SQL Server中易混淆的数据类型 (1)char、varchar、text和nchar、nvarchar、ntextchar和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。后面三种数据类型和前面的相比,从名称上看只是多了个字母"n",它表示存储的是Unicode数据类型的字符。写
关于default约束
1. 如果一个field有default 值时,应加上它的constraint 名称,如:Crate table fb_user ( Id int, Name varchar(10) constraint DF_fb_user_name DEFAULT ‘aaa’ )2. 如果要删除一个有default值的字段,但以前又没有指定其constraint名称,这时应先查找这个字段上的constraint名称,然后先删除该constraint,再删除