你的位置:首页 > 数据库

[数据库]非常用SQL语句技巧总结


1.为数据表添加一个新字段

Alter TABLE [dbo].[CustomerBackupConfig] Add [Stamp] [timestamp] NULLGO

 

2.为数据表添加两个新字段

Alter Table tblStates Add [TaxRate] money not null default 0,[Transit] int not null default 0GO

 

3.为数据表删除一个字段

Alter Table [dbo].[tblOrder] Drop Column [CookieID]GO

 

4.修改数据表一个字段的定义

Alter Table [dbo].[tblOrder] Alter Column [CookieID] int not nullGO

 

5.删除数据表

Drop Table tblTaxRateGO

 



6.为数据表去掉一个外键关联,然后再添加一个外键关联

Alter TABLE [dbo].[OrderPackageOption] Drop CONSTRAINT [FK_OrderPackageOption_OrderPackage]ALTER TABLE [dbo].[OrderPackageOption] ADDCONSTRAINT [FK_OrderPackageOption_OrderPackage] FOREIGN KEY([OrderPackageID]) REFERENCES [dbo].[OrderPackage] ([OrderPackageID])GO

 



7. 为数据表添加两个外键关联,并且设置其中之一不检查现有数据是否符合关联要求。

ALTER TABLE [dbo].[Account] ADDCONSTRAINT [FK_Account_State] FOREIGN KEY([StateID]) REFERENCES [dbo].[State] ([StateID]),CONSTRAINT [FK_Account_TimeZones] FOREIGN KEY([TimeZoneID]) REFERENCES [dbo].[TimeZones] ([timeid])GOAlter table [dbo].[Account] NoCheck Constraint [FK_Account_TimeZones]GO

 



8. 增加外键时不检查当前数据

ALTER TABLE [dbo].[Account] With NoCheckADD CONSTRAINT [FK_Account_AccountType] FOREIGN KEY([TypeID]) REFERENCES [dbo].[AccountType] ([TypeID])GO

 



9.为了对数据表进行批量的数据导入,需要将identity_insert先打开,执行完后在关闭。其目的是避开自增列的检查,顺利执行插入操作。

set identity_insert [dbo].[PSTNUsageNotes] on--在这里执行对PSTNUsageNotes表的批量插入操作set identity_insert [dbo].[PSTNUsageNotes] off

 



10.暂时关闭约束检查,等数据操作完成后再打开。

ALTER TABLE [Usage] NOCHECK CONSTRAINT [FK_USAGE_REFERENCE_PSTN1]ALTER TABLE [Usage] NOCHECK CONSTRAINT [FK_USAGE_REFERENCE_PSTN2]-- 在这里执行有可能破坏外键约束的操作,如强行删除数据等ALTER TABLE [Usage] CHECK CONSTRAINT [FK_USAGE_REFERENCE_PSTN1]ALTER TABLE [Usage] CHECK CONSTRAINT [FK_USAGE_REFERENCE_PSTN2]

 



11. 数据表的列重命名

exec sp_rename 'dbo.LocationIncidentalServiceRelationship.UsageAllowedWithouReservation','UsageAllowedWithoutReservation','column'

 



12. 检查A数据库中有哪些存储过程在B数据库中不存在

select name from Jaguar.dbo.sysobjects where xtype='P' and name not in(select name from JaguarTest.dbo.sysobjects where xtype='P' )

 



13. 在全部用户表和存储过程中寻找包含某段文字的用户表和存储过程

select OBJECT_NAME(id) AS name,[name] as content,xtype from sysobjectswhere [name] like '%IncidentalService%' And (xtype='U' or xtype='P')

 


类型说明:

 
xtypetype
CCHECK   约束
D默认值或   DEFAULT   约束
FFOREIGN   KEY   约束
FN标量函数
IF内嵌表函数
P存储过程
RF复制筛选存储过程
S系统表
TF表函数
TR触发器
U用户表
V视图
X扩展存储过程
L日志