详细讲解有关SQL Server的几个简单示例

来源:岁月联盟 编辑:zhuzhu 时间:2008-01-28

SQL Server的简单示例:

1、首先,建立一个表,然后通过存储过程往该表中插入100条记录

以下是引用片段:

create table teachers(id int primary key not null identity(10000,100),tea_name varchar(50), tea_age int default 20) create procedure insert1000teachers as declare @tea_name varchar(50) declare @tea_age int declare @index int declare @count int set @index=1 set @count=100 while @index<@count begin set @tea_age=30*rand() set @tea_name='teacher' set @tea_name=@tea_name convert(varchar,@index) insert into teachers(tea_name,tea_age) values(@tea_name,@tea_age) set @index=@index 1 end

2、创建数据库

以下是引用片段:

create database test1  on primary ( name=t1_dat, filename='d:/test_database/1/t1_dat.mdf', size=1, filegrowth=15%, maxsize=50 ),( name=t2_dat, filename='d:/test_database/1/t2_dat.ndf', size=1, maxsize=UNLIMITED, filegrowth=1 ) log on ( name=t_log, filename='d:/test_database/1/t_log.ldf', size=1, maxsize=UNLIMITED, filegrowth=1 )

3、增加一个数据文件到指定的数据库

以下是引用片段:

alter database test1 add file ( name=t3_dat, filename='d:/test_database/1/t3_dat.ndf', size=1, maxsize=UNLIMITED, filegrowth=1 )

4、增加组

以下是引用片段:

alter database test1 add filegroup filegroup1

5、增加一个数据文件到指定的组

以下是引用片段:

alter database test1 add file ( name=t4_dat, filename='d:/test_database/1/t4_dat.ndf' ) to filegroup filegroup1

6、对象重命名

更改字段名:

sp_rename 'teachers.tea_name','tea_name1','column'

更改表名:

sp_rename 'dbo.teachers','teachers1'

7、查看存储过程的内容:

sp_helptext insert1000teachers

8、采用存储过程实现:根据存储过程中的内容,查找存储过程的名字

以下是引用片段:

create procedure getProcedureByBodyWords @patpro varchar(100),--存储过程中的任意内容 @proname varchar(50) --存储过程的部分或者全名,或者为null as begin select name from sysobjects where id in (select id from syscomments where text like '%' @patpro '%') and name like case when @proname is null then '%' else '%' @proname '%' end end

如有存储过程名为insert1000teachers,操作如下可得其全名

exec getProcedureByBodyWords 'insert','insert1000'

9、采用触发器备份数据表中的数据:

建立测试数据表:

一个用于插入数据,test3

另一个作为备份,test3_bak

以下是引用片段:

create table test3(id int primary key not null identity(1,1),uname varchar(20),uage int); create table test3_bak(id int primary key not null identity(1,1),bid int,uname varchar(20), uage int,active char(1));

编写备份用的触发器,只有更新或者是插入的时候才触发

以下是引用片段:

alter trigger test3_bak_insert_update on test3 for insert,update as declare @id int declare @uname varchar(20) declare @uage int begin select @id=id,@uname=uname,@uage=uage from inserted if @id<>0 begin update test3_bak set active='0' where bid=@id insert into test3_bak(bid,uname,uage,active) values(@id,@uname,@uage,'1') end end

测试数据:

以下是引用片段:

insert into test3(uname,uage) values('FLB',20) insert into test3(uname,uage) values('FLB1',21) insert into test3(uname,uage) values('FLB2',22) update test3 set uage=100 where id=27 delete from test3 where id=20

大家可自己采用下面的查询踪两个表的数据变化:

以下是引用片段:

select * from test3 select * from test3_bak