我正在使用Microsoft SQL Server Management Studio。在插入前清除表格
我有一個腳本文件,這樣
SET IDENTITY_INSERT [dbo].[Cars] ON
.....
Many insert statements
.....
SET IDENTITY_INSERT [dbo].[Cars] OFF
問題是,如果我可以讓表被清除,並與新的插入更新此之前添加的東西?
我正在使用Microsoft SQL Server Management Studio。在插入前清除表格
我有一個腳本文件,這樣
SET IDENTITY_INSERT [dbo].[Cars] ON
.....
Many insert statements
.....
SET IDENTITY_INSERT [dbo].[Cars] OFF
問題是,如果我可以讓表被清除,並與新的插入更新此之前添加的東西?
您可以使用TRUNCATE TABLE
:
TRUNCATE TABLE [dbo].[Cars]
SET IDENTITY_INSERT [dbo].[Cars] ON
.....
Many insert statements
.....
SET IDENTITY_INSERT [dbo].[Cars] OFF
這從表中刪除所有記錄更快,使用更少的系統資源,然後DELETE
。
而且不能在一個交易*(這可能或可能不關心的OP)* – MatBailie
您可以使用:
TRUNCATE TABLE [dbo].[Cars]
這將在指定的表中刪除所有記錄。
請注意,TRUNCATE TABLE
會將IDENTITY
列上的計數器重置爲CREATE TABLE
語句中的初始值。如果你不想這樣做,你可以使用:
DELETE FROM [dbo].[Cars]
並且不能在交易內完成*(這可能或可能不重要OP)* – MatBailie
@MatBailie [這實際上是不正確的](http://blog.sqlauthority.com/2010/03/04/sql-server-rollback-truncate-command-in-transaction/)。它不會被記錄爲刪除記錄;它被記錄爲頁面重新分配。但是,它會*記錄,因爲您可以將其回滾。 –
'TRUNCATE TABLE'?這從表中刪除_all_記錄。 –
哇很容易和快速,謝謝 –