9大SQL Server資料庫簡單示例解析

2021-04-24 07:55:29 字數 3752 閱讀 8059

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

end2、建立資料庫

以下是引用片段:

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

SQL server 之資料庫大彙總

sql 資料庫的基本知識,從前邊的每一章都進行了總結,可是整個框架的總結到今天才開始完工,下邊從我想的思路對其進行了總結聯絡。資料庫是將現實世界中的實體 entity 用聯絡 relationship 關聯起來的整體 也成關聯式資料庫 其中最主要的物件就是表 table 另外檢視 view 是為了我...

SqlServer 資料庫 三大 正規化

1 概述 一般地,在進行資料庫設計時,應遵循三大原則,也就是我們通常說的三大正規化,即第一正規化要求確保表中每列的原子性,也就是不可拆分 第二正規化要求確保表中每列與主鍵相關,而不能只與主鍵的某部分相關 主要針對聯合主鍵 主鍵列與非主鍵列遵循完全函式依賴關係,也就是完全依賴 第三正規化確保主鍵列之間...

SQLServer2005資料庫快照的簡單使用

原文 sqlserver2005資料庫快照的簡單使用 sqlserver2005 資料庫快照 的簡單使用 快照理論 資料庫快照就是儲存某個資料庫在快照那一瞬間的狀態.快照和備份原理上有所不同 但是功能有一點相同那就是可以將資料還原為備份的那個時刻 快照的原理是新建乙個資料庫指標 在原資料庫沒有變化的...