非常用SQL语句技巧总结

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

Alter TABLE [dbo].[CustomerBackupConfig] Add [Stamp] [timestamp] NULL
GO

 

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

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

 

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

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

 

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

Alter Table [dbo].[tblOrder] Alter Column [CookieID] int not null
GO

 

5.删除数据表

Drop Table tblTaxRate
GO

 



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

Alter TABLE [dbo].[OrderPackageOption] Drop CONSTRAINT [FK_OrderPackageOption_OrderPackage]


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

 



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

ALTER TABLE [dbo].[Account] ADD
CONSTRAINT [FK_Account_State] FOREIGN KEY
(
[StateID]
) REFERENCES [dbo].[State] (
[StateID]
),
CONSTRAINT [FK_Account_TimeZones] FOREIGN KEY
(
[TimeZoneID]
) REFERENCES [dbo].[TimeZones] (
[timeid]
)
GO

Alter table [dbo].[Account] NoCheck Constraint [FK_Account_TimeZones]
GO

 



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

ALTER TABLE [dbo].[Account] With NoCheck
ADD 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 sysobjects
where [name] like '%IncidentalService%' And (xtype='U' or xtype='P')

 


类型说明:

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

 

你可能感兴趣的:(非常用SQL语句技巧总结)