逐渐接触多人团队ERP软件开发了。设计发布新的模块时候总结了下以前的同时的风格。总结出下面的经验。其实这些语法在以往都有研究。但是系统用起来发现还是不那么容易记得住,所以记下在此。
新增数据表说明
execute sp_addextendedproperty 'MS_Description', '数据表说明','user', 'dbo', 'table', '用户数据表名'
新增数据表字段说明
execute sp_addextendedproperty 'MS_Description', '数据表名', 'user', 'dbo', 'column', '字段说明'
新增数据表字段
--方法一
ALTER TABLE [dbo].[数据表名] ADD 字段名称 float default(0)
--方法二
--查询对应的字段所在数据表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[数据表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
--查询对应的数据表字段
if (NOT exists ( select * from dbo.syscolumns where name = '字段名称' and id in (select id from dbo.sysobjects where id = object_id(N'[dbo].[数据表名]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)))
--新增数据表字段定义
ALTER TABLE [dbo].[数据表名] ADD 字段名称 varchar(50) null
删除指定视图
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[视图名称]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[视图名称]
删除指定数据表
if not exists (select 1 from sysobjects where id = object_id('dbo.数据表名') and type = 'U')
drop table [dbo].[数据表名]
删除指定存储过程方法一
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[存储过程名称]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[存储过程名称]
删除指定存储过程方法二
IF OBJECT_ID(N'[dbo].[存储过程名称]') IS NOT NULL
DROP PROCEDURE [dbo].[存储过程名称]
删除指定数据表字段
ALTER TABLE [dbo].[数据表名] drop COLUMN 字段名称
删除指定数据表约束
ALTER TABLE [dbo].[数据表名] drop 约束名称
修改字段定义
--查询对应的字段所在数据表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[数据表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
--查询对应的数据表字段
if (exists ( select * from dbo.syscolumns where name = '字段名称' and id in (select id from dbo.sysobjects where id = object_id(N'[dbo].[数据表名]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)))
--查询数据表字段定义
ALTER TABLE [dbo].[数据表名] ALTER COLUMN 字段名称 字段类型(长度限制) 是否为空
修改主键
ALTER TABLE [dbo].[数据表名] WITH NOCHECK ADD
CONSTRAINT [PK_数据表名] PRIMARY KEY CLUSTERED
(
[UniqueID]
) ON [PRIMARY]
修改日期字段默认值
ALTER TABLE [dbo].[数据表名] ADD CONSTRAINT [DF_数据表名_日期字段名] DEFAULT (getdate()) FOR [日期字段名]
修改数字字段默认值
ALTER TABLE [dbo].[数据表名] ADD CONSTRAINT [DF_数据表名_数字字段名] DEFAULT (0) FOR [数字字段名]
初始化数据操作
if not exists (select 'q' from dbo.数据表名 where 字段名称='字段数值')
insert into dbo.数据表名(字段名称) values('字段数值')
insert into dbo.数据表名(字段名称1,字段名称2) values('字段数值1','字段数值2')
初始化不重复数据操作
IF NOT EXISTS (SELECT 'A' FROM [dbo].[数据表名] WHERE 字段名='字段值')
BEGIN
INSERT INTO [dbo].[数据表名]([字段名]) VALUES('字段值')
END
SQL脚本顶部的备注格式
/*
功能:
日期:
作者:
*/