यदि अस्थायी तालिका मौजूद है और तालिका को फिर से बनाने से पहले मौजूद है, तो यह जांचने के लिए मैं निम्नलिखित कोड का उपयोग कर रहा हूं। यह तब तक ठीक काम करता है जब तक मैं कॉलम नहीं बदलता। यदि मैं बाद में एक कॉलम जोड़ता हूं, तो यह "अमान्य कॉलम" कहते हुए एक त्रुटि देगा। कृपया मुझे बताएं कि मैं क्या गलत कर रहा हूं।
IF OBJECT_ID('tempdb..#Results') IS NOT NULL
DROP TABLE #Results
CREATE TABLE #Results
(
Company CHAR(3),
StepId TINYINT,
FieldId TINYINT,
)
select company, stepid, fieldid from #Results
--Works fine to this point
IF OBJECT_ID('tempdb..#Results') IS NOT NULL
DROP TABLE #Results
CREATE TABLE #Results
(
Company CHAR(3),
StepId TINYINT,
FieldId TINYINT,
NewColumn NVARCHAR(50)
)
select company, stepid, fieldid, NewColumn from #Results
--Does not work
BEGIN TRANSACTION; CREATE TABLE #Results; ...; DROP TABLE #Results; COMMIT
:। यदि लेनदेन सफल होता है, तो तालिका हटा दी जाएगी। यदि यह विफल रहता है, तो तालिका को भी चला जाएगा (क्योंकि यह लेनदेन के भीतर बनाया गया था)। किसी भी मामले में: तालिका पहले से मौजूद है या नहीं, इसकी जांच करने की आवश्यकता नहीं है।