2016-06-07 80 views
0

我正在使用Microsoft SQL Server Management Studio。在插入前清除表格

我有一個腳本文件,這樣

SET IDENTITY_INSERT [dbo].[Cars] ON 
..... 
Many insert statements 
..... 
SET IDENTITY_INSERT [dbo].[Cars] OFF 

問題是,如果我可以讓表被清除,並與新的插入更新此之前添加的東西?

+1

'TRUNCATE TABLE '?這從表中刪除_all_記錄。 –

+0

哇很容易和快速,謝謝 –

回答

4

您可以使用TRUNCATE TABLE

TRUNCATE TABLE [dbo].[Cars] 
SET IDENTITY_INSERT [dbo].[Cars] ON 
..... 
Many insert statements 
..... 
SET IDENTITY_INSERT [dbo].[Cars] OFF 

這從表中刪除所有記錄更快,使用更少的系統資源,然後DELETE

+0

而且不能在一個交易*(這可能或可能不關心的OP)* – MatBailie

3

您可以使用:

TRUNCATE TABLE [dbo].[Cars] 

這將在指定的表中刪除所有記錄。

請注意,TRUNCATE TABLE會將IDENTITY列上的計數器重置爲CREATE TABLE語句中的初始值。如果你不想這樣做,你可以使用:

DELETE FROM [dbo].[Cars] 
+0

並且不能在交易內完成*(這可能或可能不重要OP)* – MatBailie

+0

@MatBailie [這實際上是不正確的](http://blog.sqlauthority.com/2010/03/04/sql-server-rollback-truncate-command-in-transaction/)。它不會被記錄爲刪除記錄;它被記錄爲頁面重新分配。但是,它會*記錄,因爲您可以將其回滾。 –