常用的sql标准建表语句

时间:2023-03-08 16:58:14

使用指定数据库

    use v4base

建一张表

    /********************************************************************************
小区主档记录,要保证与OrgLevelUnit同步
********************************************************************************/
IF not exists(SELECT OBJECT_NAME (id )FROM sysobjects
WHERE xtype = 'U' AND OBJECTPROPERTY (id, 'IsMSShipped') = 0
and OBJECT_NAME (id)='WYEstate')
Create table WYEstate
(
ID varchar(50) primary key not null,--小区编码,自动编码,A+4位数,允许手写
Name varchar(200) null,--小区名称
FloorArea decimal(10,2) ,--占地面积
BuiltArea decimal(10,2) ,--建筑面积
GreenArea decimal(10,2) ,--绿化面积
RoadArea decimal(10,2) ,--道路面积
BuildingNum int not null default(0),--楼宇数量
Address nvarchar(2000) ,--小区地址
Leader varchar(50) ,--负责人
LeaderName varchar(100) ,--负责人姓名
Developer nvarchar(200) ,--开发商
DevContractor nvarchar(200) ,--开发商联系人
DevContractWay nvarchar(400) ,--开发商联系方式
Remark nvarchar(4000) ,--备注
StdUser varchar(50) not null,
Builder varchar(20) not null,--创建人
BuildDate datetime default(getdate()) not null,--创建时间
Laster varchar(20) not null,--最后修改人
LastDate datetime default(getdate()) not null --最后修改时间
)

添加一个表字段

    if not exists (
select * from syscolumns
where id = object_id('WYEstate')
and name = 'MSQuestion'
)
alter table WYEstate add MSQuestion NVARCHAR(500) null--问题

删除一个表字段

    if exists (
select * from syscolumns
where id = object_id('WYEstate')
and name = 'MSQuestion'
)
alter table WYEstate drop column MSQuestion--问题

修改一个表字段

    if exists (
select * from syscolumns
where id = object_id('WYEstate')
and name = 'MSQuestion'
)
alter table WYEstate alter column MSQuestion nvarchar(100)--问题

给某一个表字段添加注释

    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'问题' , @level0type=N'SCHEMA',@level0name=N'dbo',                     @level1type=N'TABLE',@level1name=N'WYEstate', @level2type=N'COLUMN',@level2name=N'MSQuestion'

创建一个过程

    IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'TestProcedure ')
BEGIN
PRINT 'Dropping Procedure TestProcedure '
DROP Procedure TestProcedure
END
GO
CREATE PROCEDURE dbo.TestProcedure (
@OrderID uniqueidentifier,--参数
@AccessUser varchar(100),
@StdUser varchar(100)
)
as
BEGIN
--这里写下你过程里边的查询逻辑或操作逻辑
END

书写过程时候的建议

请在AS上边,添加对过程的注释以及说明,如(markdown,如果在sql语句里边添加下边的语句,整个看起来就不想代码了,因此单独摘出并提示):

    )
/**********************************************************************
Description:
这里写过程的主要功能,如分析考勤结果
Relations:
这里写下相关联的一些表,以方便编写过程
select * from Branch--网点
select * from TeamOrder--团体订单
select * from Order where status = '6'--订单
select * from OrderRoute--行程表
select * from Passenger--乘客表
select * from PassengerRoute--乘客行程表
Useage:
这里写下一些你执行过程的实例,以方便进行测试
exec TestProcedure '993AD244-1692-4197-A494-D24021857778','0001','CTYSoft'
exec TestProcedure @OrderID='1131FEC0-00A3-42A5-AB3B-4DAC1E059CF7',@AccessUser=N'0001',@StdUser=N'CTYSoft'
UpdateLog:
这里写下你对过程的更新日志,如
Update by William 2016-6-6 考虑时间临界值
**********************************************************************/
AS