SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, QUOTED_IDENTIFIER, CONCAT_NULL_YIELDS_NULL, XACT_ABORT ON
GO
SET NUMERIC_ROUNDABORT OFF
GOBEGIN TRANSACTIONIF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GOIF @@TRANCOUNT = 1
DROP INDEX [dbo].[Inn_City].[IX_Inn_City]
GOIF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GOIF @@TRANCOUNT = 1
ALTER TABLE [dbo].[Inn_GemaltoLocations] DISABLE TRIGGER [Inn_GemaltoLocations_delete]
GOIF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GOIF @@TRANCOUNT = 1
ALTER TABLE [dbo].[Inn_GemaltoLocations] DISABLE TRIGGER [Inn_GemaltoLocations_insert]
GOIF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GOIF @@TRANCOUNT = 1
COMMIT TRANSACTION
GOBEGIN TRANSACTION
GO
SET NUMERIC_ROUNDABORT OFF
GOBEGIN TRANSACTIONIF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GOIF @@TRANCOUNT = 1
DROP INDEX [dbo].[Inn_City].[IX_Inn_City]
GOIF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GOIF @@TRANCOUNT = 1
ALTER TABLE [dbo].[Inn_GemaltoLocations] DISABLE TRIGGER [Inn_GemaltoLocations_delete]
GOIF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GOIF @@TRANCOUNT = 1
ALTER TABLE [dbo].[Inn_GemaltoLocations] DISABLE TRIGGER [Inn_GemaltoLocations_insert]
GOIF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GOIF @@TRANCOUNT = 1
COMMIT TRANSACTION
GOBEGIN TRANSACTION
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
報錯時,有事務沒提交時返回事務
報錯
@@TRANCOUNT = 1
事務沒提交
ROLLBACK TRANSACTION
返回事務
有1個事務沒提交
ALTER TABLE [dbo].[Inn_GemaltoLocations] DISABLE TRIGGER [Inn_GemaltoLocations_delete]
GO IF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GO IF @@TRANCOUNT = 1
ALTER TABLE [dbo].[Inn_GemaltoLocations] DISABLE TRIGGER [Inn_GemaltoLocations_insert]
GO
这是我用的工具执行的sql怎么把触发器给DISABLE为什么????
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, QUOTED_IDENTIFIER, CONCAT_NULL_YIELDS_NULL, XACT_ABORT ON
GO
SET NUMERIC_ROUNDABORT OFF
GO
--启动事务
BEGIN TRANSACTION --1
--根据判断是否有错误并且是否有未提交事务,
--如果有,则回滚事务,
IF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GO
--如果 --1的事务成功启动,
--删除索引,[dbo].[Inn_City].[IX_Inn_City]
IF @@TRANCOUNT = 1
DROP INDEX [dbo].[Inn_City].[IX_Inn_City]
GO
--根据判断是否有错误,
--如果有,则回滚事务 --1 ,
IF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GO
--根据判断事务 --1 没有回滚,则禁止删除触犯器.
IF @@TRANCOUNT = 1
ALTER TABLE [dbo].[Inn_GemaltoLocations] DISABLE TRIGGER [Inn_GemaltoLocations_delete]
GO
--根据判断是否有错误,
--如果有,则回滚事务 --1 ,
IF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GO
--根据判断事务 --1 没有回滚,则禁止新增触犯器.
IF @@TRANCOUNT = 1
ALTER TABLE [dbo].[Inn_GemaltoLocations] DISABLE TRIGGER [Inn_GemaltoLocations_insert]
GO
--根据判断是否有错误,
--如果有,则回滚事务 --1 ,
IF @@ERROR <> 0
IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GO
--根据判断是否有事务 --1 ,
--如果事务存在,则提交
IF @@TRANCOUNT = 1
COMMIT TRANSACTION
GO
--启动下一个事务 --2
BEGIN TRANSACTION
当 SET ANSI_NULLS 为 ON 时,如果比较中有一个或多个表达式为 NULL,则既不输出 TRUE 也不输出 FALSE,而是输出 UNKNOWN。这是因为未知值不能与其他任何值进行逻辑比较。这种情况发生在一个表达式与 NULL 单词进行比较,或者两个表达式相比,而其中一个表达式取值为 NULL 时。例如,当 ANSI_NULLS 为 ON 时,以下比较总是生成 UNKNOWN:*/
SET ANSI_NULLS ON
/*
针对小于定义的列大小的值以及 char、varchar、binary 和 varbinary 数据中有尾随空格的值,此语句可以控制存储此类值的方式。
*/
SET ANSI_PADDING ON................
drop index 表名.索引名