{"id":548,"date":"2018-05-27T17:59:44","date_gmt":"2018-05-27T10:59:44","guid":{"rendered":"http:\/\/www.sqlservertutorial.net\/?page_id=548"},"modified":"2020-04-11T20:13:28","modified_gmt":"2020-04-11T13:13:28","slug":"sql-server-truncate-table","status":"publish","type":"page","link":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-truncate-table\/","title":{"rendered":"SQL Server TRUNCATE TABLE"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you will learn how to use the <code>SQL<\/code> Server <code>TRUNCATE TABLE<\/code> statement to remove all rows from a table faster and more efficiently.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id='introduction-to-sql-server-truncate-table-statement'>Introduction to SQL Server TRUNCATE TABLE statement <a href=\"#introduction-to-sql-server-truncate-table-statement\" class=\"anchor\" id=\"introduction-to-sql-server-truncate-table-statement\" title=\"Anchor for Introduction to SQL Server &lt;code&gt;TRUNCATE TABLE&lt;\/code&gt; statement\">#<\/a><\/h2>\n\n\n\n<p>Sometimes, you want to delete all rows from a table. In this case, you typically use the <code><a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-delete\/\">DELETE<\/a><\/code> statement without a <code><a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-where\/\">WHERE<\/a><\/code> clause.<\/p>\n\n\n\n<p>The following example <a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-create-table\/\">creates a new table<\/a> named <code>customer_groups<\/code> and <a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-insert\/\">inserts some rows into the table<\/a>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">TABLE<\/span> sales.customer_groups (\n    <span class=\"hljs-keyword\">group_id<\/span> <span class=\"hljs-built_in\">INT<\/span> PRIMARY <span class=\"hljs-keyword\">KEY<\/span> <span class=\"hljs-keyword\">IDENTITY<\/span>,\n    group_name <span class=\"hljs-built_in\">VARCHAR<\/span> (<span class=\"hljs-number\">50<\/span>) <span class=\"hljs-keyword\">NOT<\/span> <span class=\"hljs-literal\">NULL<\/span>\n);\n\n<span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> sales.customer_groups (group_name)\n<span class=\"hljs-keyword\">VALUES<\/span>\n    (<span class=\"hljs-string\">'Intercompany'<\/span>),\n    (<span class=\"hljs-string\">'Third Party'<\/span>),\n    (<span class=\"hljs-string\">'One time'<\/span>);\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>To delete all rows from the <code>customer_groups<\/code> table, you use the <code>DELETE<\/code> statement as follows:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">DELETE<\/span> <span class=\"hljs-keyword\">FROM<\/span> sales.customer_groups;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Besides the <code>DELETE FROM<\/code> statement, you can use the <code>TRUNCATE TABLE<\/code> statement to delete all rows from a table.<\/p>\n\n\n\n<p>The following illustrates the syntax of the <code>TRUNCATE TABLE<\/code> statement:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">TRUNCATE<\/span> <span class=\"hljs-keyword\">TABLE<\/span> &#91;database_name.]&#91;schema_name.]table_name;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this syntax, first, you specify the name of the table from which you want to delete all rows. Second, the database name is the name of the database in which the table was created. The database name is optional. If you skip it, the statement will delete the table in the currently connected database.<\/p>\n\n\n\n<p>The following statements first insert some rows into the <code>customer_groups<\/code> table and then delete all rows from it using the <code>TRUNCATE TABLE<\/code> statement:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> sales.customer_groups (group_name)\n<span class=\"hljs-keyword\">VALUES<\/span>\n    (<span class=\"hljs-string\">'Intercompany'<\/span>),\n    (<span class=\"hljs-string\">'Third Party'<\/span>),\n    (<span class=\"hljs-string\">'One time'<\/span>);   \n\n<span class=\"hljs-keyword\">TRUNCATE<\/span> <span class=\"hljs-keyword\">TABLE<\/span> sales.customer_groups;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The <code>TRUNCATE TABLE<\/code> is similar to the <code>DELETE<\/code> statement without a <code>WHERE<\/code> clause. However, the <code>TRUNCATE<\/code> statement executes faster and uses a fewer system and transaction log resources.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id='truncate-table-vs-delete'>TRUNCATE TABLE vs. DELETE <a href=\"#truncate-table-vs-delete\" class=\"anchor\" id=\"truncate-table-vs-delete\" title=\"Anchor for TRUNCATE TABLE vs. DELETE\">#<\/a><\/h2>\n\n\n\n<p>The <code>TRUNCATE TABLE<\/code> has the following advantages over the <code>DELETE<\/code> statement:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id='1-use-less-transaction-log'>1) Use less transaction log <a href=\"#1-use-less-transaction-log\" class=\"anchor\" id=\"1-use-less-transaction-log\" title=\"Anchor for 1) Use less transaction log\">#<\/a><\/h3>\n\n\n\n<p>The <code>DELETE<\/code> statement removes rows one at a time and inserts an entry in the transaction log for each removed row. On the other hand, the <code>TRUNCATE TABLE<\/code> statement deletes the data by deallocating the data pages used to store the table data and inserts only the page deallocations in the transaction logs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id='2-use-fewer-locks'>2) Use fewer locks <a href=\"#2-use-fewer-locks\" class=\"anchor\" id=\"2-use-fewer-locks\" title=\"Anchor for 2) Use fewer locks\">#<\/a><\/h3>\n\n\n\n<p>When the <code>DELETE<\/code> statement is executed using a row lock, each row in the table is locked for removal. The <code>TRUNCATE TABLE<\/code> locks the table and pages, not each row.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id='3-identity-reset'>3) Identity reset <a href=\"#3-identity-reset\" class=\"anchor\" id=\"3-identity-reset\" title=\"Anchor for 3) Identity reset\">#<\/a><\/h3>\n\n\n\n<p>If the table to be truncated has an <a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-identity\/\">identity column<\/a>, the counter for that column is reset to the seed value when data is deleted by the <code>TRUNCATE TABLE<\/code> statement but not the <code>DELETE<\/code> statement.<\/p>\n\n\n\n<p>In this tutorial, you have learned how to use the <code>TRUNCATE TABLE<\/code> statement to delete all rows from a table faster and more efficiently.<\/p>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful?<\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"548\"\n\t\t\t\tdata-post-url=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-truncate-table\/\"\n\t\t\t\tdata-post-title=\"SQL Server TRUNCATE TABLE\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"548\"\n\t\t\t\tdata-post-url=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-truncate-table\/\"\n\t\t\t\tdata-post-title=\"SQL Server TRUNCATE TABLE\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summary: in this tutorial, you will learn how to use the SQL Server TRUNCATE TABLE statement to remove all rows from a table faster and more efficiently. Introduction to SQL Server TRUNCATE TABLE statement # Sometimes, you want to delete all rows from a table. In this case, you typically use the DELETE statement without [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":100,"menu_order":55,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-548","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>An Essential Guide To SQL Server TRUNCATE TABLE Statement<\/title>\n<meta name=\"description\" content=\"This tutorial shows you how to use the SQL Server TRUNCATE TABLE statement to remove all rows from a table faster and more efficient.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-truncate-table\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"An Essential Guide To SQL Server TRUNCATE TABLE Statement\" \/>\n<meta property=\"og:description\" content=\"This tutorial shows you how to use the SQL Server TRUNCATE TABLE statement to remove all rows from a table faster and more efficient.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-truncate-table\/\" \/>\n<meta property=\"og:site_name\" content=\"SQL Server Tutorial\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-11T13:13:28+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-truncate-table\\\/\",\"url\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-truncate-table\\\/\",\"name\":\"An Essential Guide To SQL Server TRUNCATE TABLE Statement\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/#website\"},\"datePublished\":\"2018-05-27T10:59:44+00:00\",\"dateModified\":\"2020-04-11T13:13:28+00:00\",\"description\":\"This tutorial shows you how to use the SQL Server TRUNCATE TABLE statement to remove all rows from a table faster and more efficient.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-truncate-table\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-truncate-table\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-truncate-table\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server Basics\",\"item\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SQL Server TRUNCATE TABLE\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/#website\",\"url\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/\",\"name\":\"SQL Server Tutorial\",\"description\":\"The Practical SQL Server Tutorial\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"An Essential Guide To SQL Server TRUNCATE TABLE Statement","description":"This tutorial shows you how to use the SQL Server TRUNCATE TABLE statement to remove all rows from a table faster and more efficient.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-truncate-table\/","og_locale":"en_US","og_type":"article","og_title":"An Essential Guide To SQL Server TRUNCATE TABLE Statement","og_description":"This tutorial shows you how to use the SQL Server TRUNCATE TABLE statement to remove all rows from a table faster and more efficient.","og_url":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-truncate-table\/","og_site_name":"SQL Server Tutorial","article_modified_time":"2020-04-11T13:13:28+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-truncate-table\/","url":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-truncate-table\/","name":"An Essential Guide To SQL Server TRUNCATE TABLE Statement","isPartOf":{"@id":"https:\/\/www.sqlservertutorial.net\/#website"},"datePublished":"2018-05-27T10:59:44+00:00","dateModified":"2020-04-11T13:13:28+00:00","description":"This tutorial shows you how to use the SQL Server TRUNCATE TABLE statement to remove all rows from a table faster and more efficient.","breadcrumb":{"@id":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-truncate-table\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-truncate-table\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-truncate-table\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlservertutorial.net\/"},{"@type":"ListItem","position":2,"name":"SQL Server Basics","item":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/"},{"@type":"ListItem","position":3,"name":"SQL Server TRUNCATE TABLE"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlservertutorial.net\/#website","url":"https:\/\/www.sqlservertutorial.net\/","name":"SQL Server Tutorial","description":"The Practical SQL Server Tutorial","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlservertutorial.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/pages\/548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/comments?post=548"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/pages\/548\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/pages\/100"}],"wp:attachment":[{"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/media?parent=548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}