SQL Server (Transact-SQL) TRUNCATE TABLE 关键字用于从现有表中删除完整数据。 SQL Server (Transact-SQL) DROP TABLE 语句也可用于删除表的完整数据表,但它会从数据库中删除整个表结构。因此,当需要清空表但保留表结构时,TRUNCATE TABLE 语句非常有用。
注意:在清空表之前要小心。一旦删除,该表中存储的所有数据将永远丢失!
语法
在 SQL Server (Transact-SQL) 中使用 TRUNCATE TABLE 关键字的语法如下:
TRUNCATE TABLE table_name;
示例:
考虑一个数据库,其中包含一个名为 Employee 的表,其中包含以下记录:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
1 | John | London | 25 | 3000 |
2 | Marry | New York | 24 | 2750 |
3 | Jo | Paris | 27 | 2800 |
4 | Kim | Amsterdam | 30 | 3100 |
5 | Ramesh | New Delhi | 28 | 3000 |
6 | Huang | Beijing | 28 | 2800 |
可以使用以下命令检查表的描述: EXEC sp_columns 命令如下所示:
EXEC sp_columns Employee;
上述代码的结果将类似于:
TABLE_OWNER | TABLE_NAME | COLUMN_NAME | DATA_TYPE | TYPE_NAME | PRECISION | LENGTH |
---|---|---|---|---|---|---|
dbo | Employee | EmpID | 4 | int identity | 10 | 4 |
dbo | Employee | Name | 12 | varchar | 255 | 255 |
dbo | Employee | City | 12 | varchar | 100 | 100 |
dbo | Employee | Age | 4 | int | 10 | 4 |
dbo | Employee | Salary | 3 | decimal | 18 | 20 |
要清空此表,查询如下:
TRUNCATE TABLE Employee;
清空表后,DESC 命令仍将显示与上所示相同的结构,但表将不包含任何记录。