admin管理员组文章数量:1565284
2024年7月26日发(作者:)
修改数据库的常用SQL语句
修改数据库的常用SQL语句
1:删除表
if exists (select * from ects where id =
object_id(N'[dbo].[TableName]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[ TableName]
GO
2:创建表
CREATE TABLE [TableName] (表结构) ON [PRIMARY]
GO
例:
--创建虚拟通道表VirtualChannel,包括OrderID,ChannelName两列。
if exists (select * from ects where id =
object_id(N'[dbo].[VirtualChannel]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[VirtualChannel]
GO
CREATE TABLE [VirtualChannel] (
[OrderID] [int] IDENTITY (1, 1) NOT NULL ,
[ChannelName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
CONSTRAINT [PK_VirtualChannel] PRIMARY KEY CLUSTERED
(
[OrderID]
) ON [PRIMARY]
) ON [PRIMARY]
GO
3:删除视图
if exists (select * from ects where id
object_id(N'[dbo].[ViewName]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[ViewName]
=
GO
4:创建视图
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE VIEW me
AS
视图SQL语句
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
例:
--创建视图ObjectView
if exists (select * from ects where id =
object_id(N'[dbo].[ObjectView]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[ObjectView]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
/****** Object: View View Script Date: 2004-7-14 20:52:38 ******/
CREATE VIEW View
AS
SELECT , Id,
ta, dTable,
Time, /doc/,,
evel, ption, ,
, ff, rol,
lag FROM able INNER JOIN
lData ON =
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
5:删除触发器
if exists (select * from ects where id
object_id(N'[dbo].[TriggerName]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[ TriggerName]
=
GO
6:创建触发器
CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TableName]
FOR INSERT, UPDATE, DELETE
AS
触发器SQL语句
GO
例:
--创建触发器在AlarmHistory表中创建AlarmHistory_Insert
if exists (select * from ects where id =
object_id(N'[dbo].[AlarmHistory_Insert]') and OBJECTPROPERTY(id, N'IsTrigger') =
1)
drop trigger [dbo].[AlarmHistory_Insert]
GO
CREATE TRIGGER AlarmHistory_Insert ON istory
FOR INSERT
AS
insert into AlarmNotify
select
o,n,Name,ime,,evel,o,
lg,ext,uf,ata,d,serName,
ime,
from Inserted a,alarmtable b where =
and = 0
GO
7:删除存储过程
if exists (select * from ects where id =
object_id(N'[dbo].[ ProcedureName]') and OBJECTPROPERTY(id, N'IsProcedure') =
1) drop procedure [dbo].[ ProcedureName]
GO
8:创建存储过程
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE ProcedureName
存储过程SQL语句
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
例:
--创建存储过程gy
if exists (select * from ects where id = object_id(N'[dbo].[gy]') and
OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[gy]
GO
CREATE PROCEDURE gy
@TableName Varchar(100) --数据库表名
AS
begin
SELECT
表名=case when er=1
/doc/, else '' end,
字段序号=er,
then
字段名=/doc/,,
标识=case when
COLUMNPROPERTY( ,/doc/,,'IsIdentity'
)=1 then '√'else '' end, 主键=case when exists(SELECT 1 FROM sysobjects where
xtype='PK' and name in ( SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = AND colid= ))) then
'√' else '' end,
类型=/doc/,,
占用字节数=,
长度
=COLUMNPROPERTY(,/doc/,,'PRECISI
ON'),
小数位数
=isnull(COLUMNPROPERTY(,/doc/,,'Sc
ale'),0),
允许空=case when able=1 then '√'else '' end,
默认值=isnull(,''),
字段说明=isnull(g.[value],'')
FROM syscolumns a
left join systypes b on =ype
inner join sysobjects d on = and ='U'
left
and
join /doc/,<>'dtproperties'
syscomments e on lt=
left join sysproperties g on = and =d
where /doc/,= @TableName --表名
order by ,er
end
GO
说明:要创建表、视图、触发器和存储过程,先做一次删除操作,避免出现重复的情
况。创建这些,一般是在SQL SERVER企业管理器中创建,在生成SQL语句时,只需复
制某一对象,粘贴到文本就可以了。
9:在表中增加列
if col_length('[TableName]', '[ColumnName]') is NULL
ALTER TABLE TableName ADD [ColumnName] [Type] [NULLnot NULL]
DEFAULT (0) WITH VALUES
GO
写该列的描述
execute sp_addextendedproperty 'MS_Description',
'描述内容',
'user', 'dbo', 'table', 'Table', 'column', 'ColumnName'
GO
例:
--在Station表中增加一列
if col_length('Station', 'StaAttribute') is NULL
ALTER TABLE Station ADD StaAttribute int not NULL
DEFAULT (0) WITH VALUES
GO
--写描述
execute sp_addextendedproperty 'MS_Description',
'基站属性:0电表装在倒换开头之前;1电表在装倒换开关之后;其它预留', 'user',
'dbo', 'table', 'Station', 'column', 'StaAttribute'
GO
10:修改某一列
alter table TableName alter column [ColumnName] [Type] [NULLnot NULL]
GO
例:
--修改Device表的strid
alter table Device alter column StrID Varchar(20) NULL
GO
11:删除某一列
如果表中存在关于该列的约束,要先删除约束
ALTER TABLE TableName drop CONSTRAINT constraint
ALTER TABLE TableName drop column ColumnName
GO
例:
--删除Device表中是AmmeterPosition
ALTER TABLE Device drop CONSTRAINT DF_Device_AmmeterPosition
ALTER TABLE Device drop column AmmeterPosition
GO
12:删除索引
IF EXISTS (SELECT name FROM sysindexes WHERE name = 'IX_NewAlarmMask')
ALTER TABLE [dbo].[NewAlarmMask] DROP [IX_NewAlarmMask]
--删除是约束的索引
DROP INDEX [dbo].[NewAlarmMask].[IX_NewAlarmMask]
--删除非约束的索引GO
版权声明:本文标题:修改数据库的常用SQL语句 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1721962053a907616.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论