给出以下SQL(MS SQL 2008):
SET IDENTITY_INSERT MyTable ON
GO
INSERT INTO MyTable
SELECT * FROM MyTable
WHERE Id = @SomeId
GO
SET IDENTITY_INSERT MyTable OFF
Run Code Online (Sandbox Code Playgroud)
这导致:
An explicit value for the identity column in table 'MyTable' can only be specified when a column list is used and IDENTITY_INSERT is ON.
那么,我真的需要定义列列表吗?有没有办法保持通用?例如,如果开发人员稍后添加了一个列,则此列将不会进入此例程,如果不允许null,它甚至会失败...