Не, освен ако не искате да навлезете в динамичен SQL. Тъй като си написал "чисто", предполагам, че не.
Редактиране: Тъй като той поиска пример за динамичен 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)