我正在开发一个小型 Web 应用程序并使用 Microsoft SQL 进行数据存储。我正在使用利用 JDBC 的服务层与数据库交互。
目前,当我尝试将 ID 不存在的“客户”放入数据库中时,我不断收到错误消息:
Cannot insert explicit value for identity column in table 'Customers' when IDENTITY_INSERT is set to OFF.
为了支持正确的 RESTful API,如果此 ID 不存在,我希望能够插入它或更新已经存在的客户。我查找了无数与我的有点相关的问题,其中很多人谨慎地建议打开 IDENTITY_INSERT,但说这是一种不好的做法。我很好奇我可以在数据库或代码中做什么来健康地支持 RESTful PUT - 如果有办法在维护 IDENTITY 列的同时做到这一点,那么我可以在不了解 CustomerID 列的情况下进行 POST 操作。