--无法在表 '测试表' 中可为 Null 的列上定义 PRIMARY KEY 约束(PK开头为主键约束)
--设置主键的字段不能是允许为null的字段
--设置主键的字段已有内容不能有重复内容如:SP1、SP1
--判断是否存在表【测试表】
if exists(select * from syscolumns where id=object_id('测试表'))
begin
--存在测试表时,新建字段并写入内容
print '已存在【测试表】、大表格已删除,请重新生成【测试表】'
--删除数据库的【测试表】
USE 测试数据库
DROP TABLE 测试表
end
else
begin
--新建数据表【测试表】------------------------------------------------------------
--质量 smallint check (质量>=10) , -- 列约束
--constraint 表约束_约束名称 primary key (商品ID, 商品名称), -- 表约束,可设置多个字段
CREATE TABLE 测试表 --创建一个名为table_name的表
(
商品ID varchar(40) not null,
商品名称 varchar(30) not null,
规格 varchar(30) ,
型号 varchar(30) ,
属性 varchar(30) not null,
分类 varchar(30) not null,
单价 money default 0.01 ,
数量 int default 0 ,
备注 varchar(400)
)
-- ------------------------------------------------------------------------------
--增加表字段---------------------------------字段短了会被截断停止运行
ALTER TABLE 测试表 ADD 字段名 CHAR(50)
ALTER TABLE 测试表 ADD 测试列 CHAR(50)
-- ---------------------------------------------------------------
--设置主键约束【商品ID】-------------------------------------------------------
alter table 测试表 add constraint 约束条件名称 primary key (商品ID)
-- 设置唯一约束【商品名称】 ----------------------------------------------------
ALTER TABLE 测试表 ADD CONSTRAINT 商品_唯一约束 UNIQUE (商品名称)
-- 设置默认约束-----------------------------------------------------------------
ALTER TABLE 测试表 ADD CONSTRAINT 默认约束1 DEFAULT ('默认设置值') FOR 字段名
--判断是否存在主键约束,primary key简称PK是主键约束的type----------------------------------------------------
IF EXISTS(SELECT * FROM sysobjects WHERE name='约束条件名称' and xtype='PK')
begin
print '存在主键约束'
end
--判断是否存在唯一约束,UNIQUE简称UQ是唯一约束的type----------------------------------------------------
IF EXISTS(SELECT * FROM sysobjects WHERE name='商品_唯一约束' and xtype='UQ')
begin
print '存在唯一约束'
end
--判断是否存在默认约束--DEFAULT简称D
IF EXISTS(SELECT * FROM sysobjects WHERE name='默认约束1' and xtype='D')
--批量增加表数据------------------------------------------------------------------------------
INSERT INTO 测试表(商品ID,商品名称,规格,型号,属性,分类,单价,备注)
VALUES ('SP00001','安宫牛黄丸','10粒/盒','A-1245','药物','中西成药',16,'防止中风,急救用'),
('SP00002','冬虫夏草','20粒/盒','D-1245','药物','参茸贵细',116,'补气'),
('SP00003','东阿阿胶','30粒/盒','D-D245','药物','中西成药',216,'补血'),
('SP00004','甘草颗粒','40粒/盒','G-1245','药物','中药颗粒',316,''),
('SP00005','按摩仪','50粒/盒','A-D1245','药物','理疗商品',636,'')
-- --------------------------------------------------------------------------------------
--更新字段内容信息-------------------------------------------------
update 测试表 set 字段名 ='大表格筛选'+商品ID where 商品ID='SP00003'
update 测试表 set 字段名 ='大表格筛选'+商品ID where 商品ID='SP00004'
update 测试表 set 字段名 ='IN大表格筛选' where 商品ID in('SP00001','SP00002')
end