在开发中,我们最常接触的就是关于数据的操作,有相当大部分的精力都在如何处理数据上,我把自己在前一段时间的一些关于数据操作的心得和大家分享下,都是些简单的东西,希望对大家有帮助,同时一些不对的地方或者有更好的方法请大家和我一起交流,大家共同进步:
1.如何自动生成ID
Create table Student
(
ID int identity,
Stu_name varchar(50),
Stu_sex bit,
Stu_faculty varchar(50)
)
在这里,identity就是让你如何自动生成Id的一个关键字。
2.如何取同一表中的某些字段的几位组合生成你所要的字段
Create table Student
(
ID int identity,
Stu_name varchar(50),
Stu_sex bit,
Stu_faculty varchar(50),
Stu_Id int,
Stu_number AS (left([Stu_faculty],(2))+right((0)+[Stu_id],(4)))
)
在这里(left([Stu_faculty],(2))+right((0)+[Stu_id],(4)))的意思就是:取Stu_faculty的前2位和Stu_Id的后四位,所以当向表中插入数据的时候,Stu_number将自动生成以Stu_faculty的前2位和Stu_Id的后四位组合成的字段,
比如现在插入:张三 true 计算机科学与技术 240064819,那么Stu_number就将自动生成为:计算4819;
3.取字符串的某几位
select * from Student where Stu_faculty = substring('计算机科学与技术',1,3);
在这里,substring('计算机科学与技术',1,3)就是截取‘计算机科学与技术’的前三位即计算机作为匹配的字段;
4.复杂插入--插入数据为查询出的值
insert into Student values('张三',true,(select Faculty from Stuid_faculty where Stuid_faculty.Stuid = substring('240064819',1,4),’240064819‘);
在这里,Stu_faculty字段的值就是通过查询查出来的值;
5.定时自动插入数据(可以大批量,但是数据时相同的)
set IDENTITY_INSERT Student ON
DECLARE @count INT
SET @count = 0 /*设置变量*/
WHILE (@count < 2000) /*设置循环次数*/
BEGIN
WAITFOR DELAY '000:00:01' /*延迟时间1秒*/
insert into Student values('张三',true,(select Faculty from Stuid_facultywhere Stuid_faculty.Stuid = substring('240064819',1,4),’240064819‘);
SET @count = @count + 1
END
在这里就是每隔1秒插入一条数据,总共插入2000条数据,不过每条数据都一样,这个只有当你需要大量数据的时候可以用用