维护数据表常用SQL语句

来源:互联网 发布:.net开源商城源码 编辑:程序博客网 时间:2024/06/07 00:22

逐渐接触多人团队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脚本顶部的备注格式
/*
 功能:
 日期:
 作者:
*/

原创粉丝点击