ThaiSQL.COM Wiki and Forum (My knowledge will be useful for you)

RSS


Quick Search
»
Advanced Search »

HostedBy
สวัสดีครับ อีก 3 วันก็ปีใหม่แล้วนะครับ วันนี้ผมไปเจอบทความอันหนึ่งมา ซึ่งจะทำให้เราเข้าใจความแตกต่างระหว่างการใช้งาน Temp Table กับ Table Variable นะครับ ลองกันดูนะครับ

CREATE TABLE #TempTable(
	Col1 VARCHAR(100)
)

DECLARE @TableVar TABLE(
	Col1 VARCHAR(100)
)

INSERT INTO #TempTable( Col1 ) VALUES  ( 'TempTable - Value Outside Transaction');
INSERT INTO @TableVar( Col1 ) VALUES  ( 'TableVar - Value Outside Transaction');

SELECT * FROM #TempTable AS tt
SELECT * FROM @TableVar AS tv

BEGIN TRAN

INSERT INTO #TempTable( Col1 ) VALUES  ( 'TempTable - Value Inside Transaction');
INSERT INTO @TableVar( Col1 ) VALUES  ( 'TableVar - Value Inside Transaction');

ROLLBACK TRAN

SELECT * FROM #TempTable AS tt
SELECT * FROM @TableVar AS tv

DROP TABLE #TempTable

สรูปว่าที่เกิดมีการใช้ Transaction Scope ข้อมูลที่อยู่ใน TableVar นั้นจะไม่มีการ RollBack กับนะครับ ยังไงก็ต้องระวังกันด้วยนะครับ