तब तक नहीं जब तक आप डायनेमिक SQL में नहीं आना चाहते। चूंकि आपने "क्लीन" लिखा है, मैं नहीं मानूंगा।
संपादित करें: चूंकि उसने एक गतिशील एसक्यूएल उदाहरण मांगा था, इसलिए मैं इस पर एक स्टैब लूंगा। मैं इस समय किसी भी डेटाबेस से जुड़ा नहीं हूं, इसलिए यह मेरे सिर के ऊपर से है और लगभग निश्चित रूप से संशोधन की आवश्यकता होगी। लेकिन उम्मीद है कि यह चीजों की भावना को पकड़ लेता है:
-- Get list of columns in table
SELECT INTO #t
EXEC sp_columns @table_name = N'TargetTable'
-- Create a comma-delimited string excluding the identity column
DECLARE @cols varchar(MAX)
SELECT @cols = COALESCE(@cols+',' ,'') + COLUMN_NAME FROM #t WHERE COLUMN_NAME <> 'id'
-- Construct dynamic SQL statement
DECLARE @sql varchar(MAX)
SET @sql = 'INSERT INTO TargetTable (' + @cols + ') ' +
'SELECT ' + @cols + ' FROM TargetTable WHERE SomeCondition'
PRINT @sql -- for debugging
EXEC(@sql)