在一个 SQL Server 数据库中,可以创建多达两万亿个表
输入一条 Create Table 语句 指定下列内容
1. 包含表的数据库
2. 表的所有者
3. 表名,在同一个数据库中和同一个所有者下,改表名必须与任何其他基表或视图不同
4. 指定 1 到 1024 个列
5. 主键约束(可选)
6.1 到 250 个 Uniquer 约束(可选)
7.1 到 253 个外键约束(可选)
8.1 个或者多个 Check 约束 ,限制插入表中的数据(可选)
9. 存储表的文件组(可选)
use databaseName
go
create Table tbName
(
tb_id int Not Null check (tb_id > 0 ),
UserName varchar ( 50 ) NOT NULL CHECK (UserName <> '' ) ,
Sex int not Null Default 1 ,
price Money NOT NULL CHECK ((price is NULL ) OR (price >= 0 )),
constraint tbPriKey Primary Key (tb_id)
)
-- --修改表--
-- 1.新增字段-
Alter Table tbName
add tbNewColumn int Null
/* 在为原来的表添加一条字段的时候需要注意的是 不允许指定该列为【 NOT NULL 】 */
-- -2.删除字段------
Alter Table tbName drop column tbNewColumn
-- -3.修改字段---
Alter Table tbName Alter column tbNewColumn char ( 30 ) null
-- --4.新建约束-------
ALTER Table tbName ADD constraint tbNewRestrain check (tb_id > 0 )
-- ---5.删除约束---------
Alter Table tbName Drop constraint tbNewRestrain
-- -----6.新建默认值--------
Alter Table tbName Add constraint tbNewDefault Default ' 10 ' for tb_id
-- -----7.删除默认值----------
Alter Table tbName drop constraint tbNewDefault
select * from tbName
2.表约束
在我们创建表的时候,可以有选择的制定四种类型的约束:
1. 主键
2. 唯一性
3. 外键
4. 检查
(
s_id int identity ( 1 , 1 ) primary key ,
s_name varchar ( 20 ) not null ,
s_age int
)
create table test
(
test_no int identity ( 1 , 1 ) primary key ,
test_name varchar ( 30 ),
nax_marks int not null default ( 0 ),
min_marks int not null default ( 0 )
)
create table marks
(
s_id int not null ,
test_no int not null ,
marks int not null default ( 0 ),
primary key (s_id,test_no),
foreign key (s_id) references student(s_id),
foreign key (test_no) references test(test_no)
)
3. 索引以及视图的创建
create view 视图名
(
字段1,
字段2,
..
)
as select a.字段1 ,a.字段2, .. from tableName as a where
------ 索引的创建 --------
create index indexName
on TableName
(字段1,字段2,字段3)
---- 修改表默认字段数值 SQL SERVER
IF EXISTS ( SELECT * FROM syscolumns WHERE id = OBJECT_ID('cg_CgProcReturnBid') AND name = 'WinBidPrice' )
Begin
DECLARE @tablename VARCHAR(100), @columnname VARCHAR(100), @tab VARCHAR(100)
SET @tablename='cg_CgProcReturnBid'
SET @columnname='WinBidPrice'
declare @defname varchar(100)
declare @cmd varchar(100)
select @defname = name FROM sysobjects A JOIN sysconstraints sc ON A.id = sc.constid WHERE object_name(A.parent_obj) = @tablename AND A.xtype = 'D'AND sc.colid =(SELECT colid FROM syscolumns WHERE id = object_id(@tablename) AND name = @columnname)
select @cmd='alter table '+ @tablename+ ' drop constraint '+ @defname if @cmd is null print ''exec (@cmd)
end;
GO