Không trừ khi bạn muốn sử dụng SQL động. Vì bạn đã viết "sạch", tôi sẽ cho là không.
Chỉnh sửa: Vì anh ấy đã yêu cầu một ví dụ SQL động, tôi sẽ xem xét nó. Tôi không kết nối với bất kỳ cơ sở dữ liệu nào vào lúc này, vì vậy đây là điều tôi nghĩ và gần như chắc chắn sẽ cần sửa đổi. Nhưng hy vọng nó nắm bắt được tinh thần của mọi thứ:
-- 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)