我可以捕获 "Cannot truncate table" 错误并改为删除吗?
Can I trap the "Cannot truncate table" error and Delete instead?
我知道 TRUNCATE TABLE "MyTable"
的有效替代是:
DELETE FROM MyTable
DBCC CHECKIDENT ('DATABASENAME.dbo.MyTable',RESEED, 0)
不过,我更愿意尽可能使用 TRUNCATE TABLE
,但我有几个使用数据库复制的客户。对于这些客户,我得到错误:Cannot truncate table 'MyTable' because it is published for replication or enabled for Change Data Capture.
有没有办法 1) 预先测试 TRUNCATE
是否有效,或者 2) 以不会失败的方式发出 TRUNCATE
命令,而是留下一个可测试值(可能是 @@ERROR
?)如果失败,它允许我执行 DELETE
?
begin try
truncata table dbo.YourTableName;
end try
begin catch
delete from dbo.YourTableName;
end catch
像这样...
我知道 TRUNCATE TABLE "MyTable"
的有效替代是:
DELETE FROM MyTable
DBCC CHECKIDENT ('DATABASENAME.dbo.MyTable',RESEED, 0)
不过,我更愿意尽可能使用 TRUNCATE TABLE
,但我有几个使用数据库复制的客户。对于这些客户,我得到错误:Cannot truncate table 'MyTable' because it is published for replication or enabled for Change Data Capture.
有没有办法 1) 预先测试 TRUNCATE
是否有效,或者 2) 以不会失败的方式发出 TRUNCATE
命令,而是留下一个可测试值(可能是 @@ERROR
?)如果失败,它允许我执行 DELETE
?
begin try
truncata table dbo.YourTableName;
end try
begin catch
delete from dbo.YourTableName;
end catch
像这样...