一.Transact-SQL的GO,詳解 (1) SQL Server 實用工具將 GO 解釋為應將當前的 Transact-SQL 批處理語句發送給 SQL Server 的信號。當前批處理語句是自上一 GO 命令後輸入的所有語句,若是第一條 GO 命令,則是從特殊會話或腳本的開始 處到這條 GO
一.Transact-SQL的GO,詳解
(1) SQL Server 實用工具將 GO 解釋為應將當前的 Transact-SQL 批處理語句發送給 SQL Server 的信號。當前批處理語句是自上一 GO 命令後輸入的所有語句,若是第一條 GO 命令,則是從特殊會話或腳本的開始 處到這條 GO 命令之間的所有語句。
(2)GO 命令和Transact-SQL 語句不可在同一行上。但在 GO 命令行中可包含註釋。 用戶必須遵照使用批處理的規則。例如,在批處理中的第一條語句後執行任何存儲過程必須包含 EXECUTE 關鍵字。局部(用戶定義)變數的作用域限制在一個批處理中,不可在 GO 命令後引用 二.關於SET ANSI_PADDING的用法 當設置為 ON 時,不剪裁字元值中插入到 varchar 列的尾隨空格和二進位值中插入到 varbinary 列的尾隨零。不將值按列的長度進行填充。 當設置為 OFF 時,剪裁 varchar 列的尾隨空格和 varbinary 列的尾隨零。該設置隻影響新列的定義。
(1)SET ANSI_PADDING 為 ON 時,將允許空值的 Char(n) 和 binary(n) 列填充到列長
(2)SET ANSI_PADDING 為 OFF 時,將剪裁尾隨空格和零。始終將不允許空值的 Char(n) 和 binary(n) 列填充到列長。
三.一些建表常用到的命令--自己做的一個DemoDB模板
use master
go
if exists(select * from sysdatabases where name='DemoDB' )
drop database DemoDB
go
create database DemoDB
on primary
(
name='DemoDB_data',
filename='C:\DB\DemoDB_data.mdf',
size=10MB,
filegrowth=1MB
)
log on
(
name='DemoDB_log',
filename='C:\DB\DemoDB_log.ldf',
size=3MB,
filegrowth=1MB
)
go
use DemoDB
go
if exists(select * from sysobjects where name='Students')
drop table Students
go
create table Students
(
StudentId int identity(100000,1),
StudentName varchar(20) not null,
Gender char(2) not null,
Birthday datetime not null,
StudentIdNo numeric(18,0) not null,
Age int not null,
PhoneNumber varchar(50),
StudentAddress varchar(500),
ClassId int not null --班級編號,外鍵
)
go
--創建班級表
if exists(select * from sysobjects where name='StudentClass')
drop table StudentClass
go
create table StudentClass
(
ClassId int primary key,
ClassName varchar(20) not null
)
go
--創建成績表
if exists(select * from sysobjects where name='ScoreList')
drop table ScoreList
go
create table ScoreList
(
Id int identity(1,1) primary key,
StudentId int not null,
CSharp int null,
SQLServerDB int null,
UOdateTime datetime not null
)
go
--創建管理員表
if exists(select * from sysobjects where name='Admins')
drop table Admins
go
create table Admins
(
LoginId int identity(1000,1) primary key,
LoginPwd varchar(20) not null,
AdminName varchar(20) not null
)
go
--創建主鍵約束
use DemoDB
go
if exists(select * from sysobjects where name='pk_StudentId')
alter table Students drop constraint pk_StudentId
alter table Students
add constraint pk_StudentId
primary key(StudentId) --修改這個數據表
--創建唯一約束
alter table Students
add constraint uq_StudentIdNo
unique(StudentIdNo)
--創建檢查約束
alter table Students
add constraint ck_Age
check(Age between 18 and 25)
--創建預設約束
alter table Students
add constraint df_StudentAddress
default('地址不詳')
for StudentAddress
--創建外鍵約束 --forreign key創建一個外鍵 references引用
alter table Students
add constraint fk_ClassId
foreign key(ClassId)
references StudentClass(ClassId)
--測試
--插入數據
--添加測試數據的時候,在實際項目中必須首先完成所有主鍵表數據的添加
insert into StudentClass(ClassId,ClassName)
values(1,'軟體一班')
insert into StudentClass(ClassId,ClassName)
values(2,'軟體二班')
insert into StudentClass(ClassId,ClassName)
values(3,'軟體三班')
insert into Students(StudentName,Gender,Birthday,StudentIdNo,Age,PhoneNumber,
StudentAddress,ClassId)
values('馬向前','男','1990-05-24',130628199005242234,24,'15911442348','保定市',1)
insert into Students(StudentName,Gender,Birthday,StudentIdNo,Age,PhoneNumber,
StudentAddress,ClassId)
values('向前','男','1990-05-24',130628199005242233,24,'15221442348','保定市',1)
insert into Admins(AdminName,LoginPwd,LoginId)
values('Max','123456')
--更改表中數據
update StudentClass
set ClassName='軟體二班'
where ClassName='軟體2二班'--表中多了一個數字2 ,可以直接去更改數據
--刪除表中數據
delete StudentClass
where ClassName='軟體二班' --把表中名字為軟體二班的那條數據刪除
--查詢,簡單的查表
select * from Students
select * from StudentClass
select * from Admins