Note
ãã®ãã¼ã¸ã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ è¦ã§ãã ãµã¤ã³ã¤ã³ã¾ãã¯ãã£ã¬ã¯ããªã®å¤æ´ã試ããã¨ãã§ãã¾ãã
ãã®ãã¼ã¸ã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ è¦ã§ãã ãã£ã¬ã¯ããªã®å¤æ´ã試ããã¨ãã§ãã¾ãã
é©ç¨å¯¾è±¡:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric ã®ã¦ã§ã¢ãã¦ã¹
Microsoft Fabric ã® SQL ãã¼ã¿ãã¼ã¹
åã
ã®è¡ã®åé¤ããã°ã«è¨é²ããããã¼ãã«ã¾ãã¯ãã¼ãã«ã®æå®ãããã¼ãã£ã·ã§ã³ãããã¹ã¦ã®è¡ãåé¤ãã¾ãã
TRUNCATE TABLEã¯ãDELETEå¥ã®ãªãWHERE ã¹ãã¼ãã¡ã³ãã«ä¼¼ã¦ãã¾ãããTRUNCATE TABLEã¯é«éã§ããã使ç¨ããã·ã¹ãã ãã° ãªã½ã¼ã¹ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ãã° ãªã½ã¼ã¹ãå°ãªããªãã¾ãã
Transact-SQL æ§æè¡¨è¨è¦å
Syntax
SQL ServerãAzure SQL DatabaseãFabric SQL Database ã®æ§æ
TRUNCATE TABLE
{ database_name.schema_name.table_name | schema_name.table_name | table_name }
[ WITH ( PARTITIONS ( { <partition_number_expression> | <range> }
[ , ...n ] ) ) ]
[ ; ]
<range> ::=
<partition_number_expression> TO <partition_number_expression>
Microsoft FabricãAzure Synapse AnalyticsãParallel Data Warehouse ã®æ§æã
TRUNCATE TABLE { database_name.schema_name.table_name | schema_name.table_name | table_name }
[ ; ]
Arguments
database_name
ãã¼ã¿ãã¼ã¹ã®ååã
schema_name
ãã¼ãã«ãå±ãã¦ããã¹ãã¼ãã®ååã§ãã
table_name
åãæ¨ã¦ããã¼ãã«ã®ååãã¾ãã¯ãã¹ã¦ã®è¡ãåé¤ããããã¼ãã«ã®ååã
table_name ã¯ãªãã©ã«ã§æå®ããå¿
è¦ãããã¾ãã
table_nameOBJECT_ID()颿°ã¾ãã¯å¤æ°ã«ãããã¨ã¯ã§ãã¾ããã
WITH ( PARTITIONS ( { <"partition_number_expression" | >"range"< } [ , ...n ] ) )>
é©ç¨å¯¾è±¡: SQL Server 2016 (13.x) 以éã®ãã¼ã¸ã§ã³ã
åãæ¨ã¦ããã¼ãã£ã·ã§ã³ãã¾ãã¯ãã¹ã¦ã®è¡ãåé¤ãããã¼ãã£ã·ã§ã³ãæå®ãã¾ãã ãã¼ãã«ããã¼ãã£ã·ã§ã³åå²ããã¦ããªãå ´åã WITH PARTITIONS 弿°ã¯ã¨ã©ã¼ãçæãã¾ãã
WITH PARTITIONSå¥ãæå®ããã¦ããªãå ´åããã¼ãã«å
¨ä½ãåãæ¨ã¦ããã¾ãã
<partition_number_expression> ã¯ä»¥ä¸ã®æ¹æ³ã§æå®ã§ãã¾ãã
WITH (PARTITIONS (2))ãªã©ã®ããã«ãã¼ãã£ã·ã§ã³çªå·ãæå®ãã¾ãã³ã³ãã§åºåã£ãè¤æ°ã®åå¥ã®ãã¼ãã£ã·ã§ã³ã®ãã¼ãã£ã·ã§ã³çªå·ãæä¾ãã¾ãããã¨ãã°æ¬¡ã®ã¨ããã§ã:
WITH (PARTITIONS (1, 5))ç¯å²ã¨åå¥ã®ãã¼ãã£ã·ã§ã³ã®ä¸¡æ¹ãæä¾ãã¾ãããã¨ãã°æ¬¡ã®ã¨ããã§ã:
WITH (PARTITIONS (2, 4, 6 TO 8))<range>ã¯ãTOã¨ããåèªã§åºåããããã¼ãã£ã·ã§ã³çªå·ã¨ãã¦æå®ã§ãã¾ããæ¬¡ã«ä¾ã示ãã¾ããWITH (PARTITIONS (6 TO 8))
ãã¼ãã£ã·ã§ã³ ãã¼ãã«ã®åãæ¨ã¦ãè¡ãã«ã¯ããã¼ãã«ã¨ã¤ã³ããã¯ã¹ã飿ºãã¦ãã (åããã¼ãã£ã·ã§ã³é¢æ°ã§ãã¼ãã£ã·ã§ã³åå²ããã¦ãã) å¿ è¦ãããã¾ãã
Remarks
DELETEã¹ãã¼ãã¡ã³ãã¨æ¯è¼ããã¨ãTRUNCATE TABLEã«ã¯æ¬¡ã®å©ç¹ãããã¾ãã
ãã©ã³ã¶ã¯ã·ã§ã³ ãã°ã使ç¨ããé åã忏ããã¾ãã
DELETEã¹ãã¼ãã¡ã³ãã¯ãä¸åº¦ã« 1 è¡ãã¤è¡ãåé¤ããåé¤ãããè¡ãã¨ã«ãã©ã³ã¶ã¯ã·ã§ã³ ãã°ã«ã¨ã³ããªãè¨é²ãã¾ããTRUNCATE TABLEã¯ããã¼ãã«ã¨ã¤ã³ããã¯ã¹ ãã¼ã¿ã®æ ¼ç´ã«ä½¿ç¨ãããã¼ã¿ ãã¼ã¸ã®å²ãå½ã¦ãè§£é¤ãããã©ã³ã¶ã¯ã·ã§ã³ ãã°ã«å²ãå½ã¦è§£é¤ããããã¼ã¸ã®ã¿ãè¨é²ãããã¨ã§ããã¼ã¿ãåé¤ãã¾ããé常ã使ç¨ãããããã¯ã®æ°ã忏ããã¾ãã
DELETEã¹ãã¼ãã¡ã³ããè¡ããã¯ã使ç¨ãã¦å®è¡ãããã¨ããã¼ãã«å ã®åè¡ãåé¤ã®ããã«ããã¯ããã¾ããTRUNCATE TABLE常ã«ãã¼ãã« (ã¹ãã¼ã (SCH-M) ããã¯ãå«ã) ã¨ãã¼ã¸ãããã¯ããã¾ãããåè¡ã¯ããã¯ããã¾ãããä¾å¤ãªãããã¼ãã«ã¾ãã¯ãã®ã¤ã³ããã¯ã¹ã«ã¯ 0 ãã¼ã¸ãæ®ãã¾ãã
DELETEã¹ãã¼ãã¡ã³ããå®è¡ãããå¾ãããã¼ãã«ã«ã¯ç©ºã®ãã¼ã¸ãå«ãããã¨ãã§ãã¾ãã ãã¨ãã°ããã¼ãå ã®ç©ºã®ãã¼ã¸ã¯ãå°ãªãã¨ãæä» (LCK_M_X) ãã¼ãã« ããã¯ãªãã§ã¯å²ãå½ã¦ãè§£é¤ã§ãã¾ããã å餿ä½ã§ãã¼ãã« ããã¯ã使ç¨ããã¦ããªãå ´åããã¼ãã« (ãã¼ã) ã«ã¯å¤æ°ã®ç©ºã®ãã¼ã¸ãå«ã¾ãã¦ããå¯è½æ§ãããã¾ãã ã¤ã³ããã¯ã¹ã®å ´åãDELETEã¹ãã¼ãã¡ã³ãã¯ç©ºã®ãã¼ã¸ãæ®ããã¨ãã§ãã¾ãã ãã®å¾ãããã¯ã°ã©ã¦ã³ã ã¯ãªã¼ã³ã¢ãã ããã»ã¹ã«ãã£ã¦ããããã®ãã¼ã¸ã®å²ãå½ã¦ãè§£é¤ããã¾ãã
TRUNCATE TABLE ã¯ãã¼ãã«ãããã¹ã¦ã®è¡ãåé¤ãã¾ããããã¼ãã«æ§é ã¨ãã®åãå¶ç´ãã¤ã³ããã¯ã¹ãªã©ãæ®ãã¾ãã ãã¼ãã«ã®ãã¼ã¿ã¨ãã¼ãã«å®ç¾©ãåé¤ããå ´åã¯ãDROP TABLE ã¹ãã¼ãã¡ã³ãã使ç¨ãã¾ãã
ãã¼ãã«ã« ID åãå«ã¾ãã¦ããå ´åã¯ããã®åã«å¯¾ããã«ã¦ã³ã¿ã¼ã¯ããã®åã«å¯¾ãã¦å®ç¾©ãããã·ã¼ãå¤ã«ãªã»ããããã¾ãã ã·ã¼ããå®ç¾©ããã¦ããªãå ´åã¯ã 1 æ¢å®å¤ã使ç¨ããã¾ãã ID ã«ã¦ã³ã¿ã¼ãä¿æããã«ã¯ã代ããã« DELETE ã使ç¨ãã¾ãã
TRUNCATE TABLEæä½ã¯ããã©ã³ã¶ã¯ã·ã§ã³å
ã§ãã¼ã«ããã¯ã§ãã¾ãã
Fabric SQL ãã¼ã¿ãã¼ã¹ã§ã¯ããã¼ãã«ãåãæ¨ã¦ãã¨ããã®ãã¼ãã«ã® Fabric OneLake ãããã©ã¼åããããã¹ã¦ã®ãã¼ã¿ãåé¤ããã¾ãã
ãã£ãã¡ã¼ãã»ãã£ã¹ãã±ã¼ã·ã§ã³
128 ã¨ã¯ã¹ãã³ã以ä¸ã使ç¨ãããã¼ãã«ãåãæ¨ã¦ãããã¨ããã¼ã¿ãã¼ã¹ ã¨ã³ã¸ã³ã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®ã³ãããå¾ã¾ã§ãå®éã®ãã¼ã¸ã®å²ãå½ã¦è§£é¤ã¨ããã«é¢é£ä»ãããã¦ããããã¯ãå»¶æãã¾ãã åãæ¨ã¦ã¯ãè«çã¨ç©çã® 2 ã¤ã®ãã§ã¼ãºã§çºçãã¾ãã è«çãã§ã¼ãºã§ã¯ããã¼ãã«ã¨ãã®ã¤ã³ããã¯ã¹ã«ãã£ã¦ä½¿ç¨ãããæ¢åã®å²ãå½ã¦åä½ãå²ãå½ã¦è§£é¤ç¨ã«ãã¼ã¯ããããã©ã³ã¶ã¯ã·ã§ã³ãã³ããããããã¾ã§ããã¯ããã¾ãã ç©çãã§ã¼ãºã§ã¯ãããã¯ã°ã©ã¦ã³ã ããã»ã¹ã«ãã£ã¦å²ãå½ã¦è§£é¤ã®ãã¼ã¯ãä»ãããããã¼ã¸ãåé¤ããã¾ãã ã¤ã¾ãã TRUNCATE TABLE ã«ãã£ã¦è§£æ¾ãããé åã¯ãæ°ããå²ãå½ã¦ã«ããã«ä½¿ç¨ã§ããªãå¯è½æ§ãããã¾ãã
é«éãã¼ã¿ãã¼ã¹ã»ãªã«ããªã¼ãæå¹ã«ãªã£ã¦ããå ´åãåãæ¨ã¦ã§ã¯ã¨ã¯ã¹ãã³ãã®æ°ã«é¢ä¿ãªããåå¥ã®è«çãã§ã¼ãºã¨ç©çãã§ã¼ãºã使ç¨ããã¾ãã
Limitations
次ã®ãã¼ãã«ã§ TRUNCATE TABLE ã使ç¨ãããã¨ã¯ã§ãã¾ããã
FOREIGN KEYå¶ç´ã«ãã£ã¦åç §ããã¾ãã ããèªä½ãåç §ããå¤é¨ãã¼ãæã¤ãã¼ãã«ã¯åãæ¨ã¦ããã¨ãã§ãã¾ããã¤ã³ããã¯ã¹ä»ããã¥ã¼ã§ä½¿ç¨ããã¦ãããã¼ãã«ã
ãã©ã³ã¶ã¯ã·ã§ã³ ã¬ããªã±ã¼ã·ã§ã³ã¨ãã¼ã¸ ã¬ããªã±ã¼ã·ã§ã³ã使ç¨ãã¦ãããªãã·ã¥ããã¦ãããã¼ãã«ã
ã·ã¹ãã ã®ãã¼ã¸ã§ã³æ å ±ã®ãã³ãã©ã« ãã¼ãã«ã
EDGEå¶ç´ã«ãã£ã¦åç §ããã¾ãã
ãããã®ç¹æ§ã® 1 ã¤ä»¥ä¸ãæã¤ãã¼ãã«ã®å ´åã¯ã代ããã« DELETE ã¹ãã¼ãã¡ã³ãã使ç¨ãã¦ãã ããã
TRUNCATE TABLE ã§ã¯ãåã
ã®è¡ã®åé¤ããã°ã«è¨é²ãããªããããããªã¬ã¼ãã¢ã¯ãã£ãåã§ãã¾ããã 詳細ã«ã¤ãã¦ã¯ãã CREATE TRIGGER (Transact-SQL)ããã覧ãã ããã
Azure Synapse Analytics 㨠Analytics Platform System (PDW) ã§ã¯:
TRUNCATE TABLEã¯ãEXPLAINã¹ãã¼ãã¡ã³ãå ã§ã¯ä½¿ç¨ã§ãã¾ãããTRUNCATE TABLEã¯ãã©ã³ã¶ã¯ã·ã§ã³å ã§å®è¡ã§ãã¾ããã
Permissions
ALTER ã§å¿
è¦ãªæå°éã®æ¨©é㯠ã§ãã
TRUNCATE TABLE ã¢ã¯ã»ã¹è¨±å¯ã¯ãæ¢å®ã§ã¯ãã¼ãã«ææè
ã sysadmin åºå®ãµã¼ãã¼ ãã¼ã«ã®ã¡ã³ãã¼ãåºå®ãã¼ã¿ãã¼ã¹ ãã¼ã«ã® db_owner 㨠db_ddladmin ã§ããã転éã§ãã¾ããã ãã ããTRUNCATE TABLE ã¹ãã¼ãã¡ã³ããã¹ãã¢ã ããã·ã¼ã¸ã£ãªã©ã®ã¢ã¸ã¥ã¼ã«å
ã«çµã¿è¾¼ã¿ãEXECUTE AS å¥ã使ç¨ãã¦ãã®ã¢ã¸ã¥ã¼ã«ã«é©åãªæ¨©éãä¸ãããã¨ã¯ã§ãã¾ãã
Examples
A. ãã¼ãã«ãåãæ¨ã¦ã
次ã®ä¾ã§ã¯ãJobCandidate ãã¼ãã«ãããã¹ã¦ã®ãã¼ã¿ãåé¤ãã¦ãã¾ãã
SELECT ã¹ãã¼ãã¡ã³ãã TRUNCATE TABLE ã¹ãã¼ãã¡ã³ãã®åå¾ã«æ¿å
¥ãã¦çµæãæ¯è¼ãã¦ãã¾ãã
USE AdventureWorks2022;
SELECT COUNT(*) AS BeforeTruncateCount
FROM HumanResources.JobCandidate;
TRUNCATE TABLE HumanResources.JobCandidate;
SELECT COUNT(*) AS AfterTruncateCount
FROM HumanResources.JobCandidate;
B. ãã¼ãã« ãã¼ãã£ã·ã§ã³ãåãæ¨ã¦ã
é©ç¨å¯¾è±¡: SQL Server 2016 (13.x) 以éã®ãã¼ã¸ã§ã³ã
次ã®ä¾ã§ã¯ããã¼ãã£ã·ã§ã³åå²ããããã¼ãã«ã®æå®ãã¼ãã£ã·ã§ã³ãåãæ¨ã¦ã¾ãã
WITH (PARTITIONS (2, 4, 6 TO 8)) æ§æã«ãããã¼ãã£ã·ã§ã³çªå·ã2ã4ã6ã7ãããã³ 8 ãåãæ¨ã¦ããã¾ãã
TRUNCATE TABLE PartitionTable1
WITH (PARTITIONS (2, 4, 6 TO 8));
GO
C. åãæ¨ã¦æä½ããã¼ã«ããã¯ãã
次ã®ä¾ã¯ããã©ã³ã¶ã¯ã·ã§ã³å
ã® TRUNCATE TABLE æä½ããã¼ã«ããã¯ã§ãããã¨ã示ãã¦ãã¾ãã
3 è¡ã®ãã¹ã ãã¼ãã«ã使ãã¾ãã
USE [tempdb]; CREATE TABLE TruncateTest (ID INT IDENTITY (1, 1) NOT NULL); GO INSERT INTO TruncateTest DEFAULT VALUES; GO 3åãæ¨ã¦ãåã«ãã¼ã¿ã確èªãã¾ãã
SELECT ID FROM TruncateTest;ãã©ã³ã¶ã¯ã·ã§ã³å ã®ãã¼ãã«ãåãæ¨ã¦ãè¡æ°ã確èªãã¾ãã
BEGIN TRANSACTION; TRUNCATE TABLE TruncateTest; SELECT ID FROM TruncateTest;ãã¼ãã«ã空ã§ãããã¨ããããã¾ãã
ãã©ã³ã¶ã¯ã·ã§ã³ããã¼ã«ããã¯ãããã¼ã¿ã確èªãã¾ãã
ROLLBACK TRANSACTION; SELECT ID FROM TruncateTest;3 ã¤ã®è¡ããã¹ã¦è¡¨ç¤ºããã¾ãã
ãã¼ãã«ãã¯ãªã¼ã³ã¢ãããã¾ãã
DROP TABLE TruncateTest;
é¢é£ã³ã³ãã³ã
- åé¤(Transact-SQL)
- DROP TABLE (Transact-SQL) (ãã¼ãã«ãåé¤ããSQLã³ãã³ã)
- CREATE TABLE (Transact-SQL) IDENTITY (ããããã£)