【发布时间】:2010-10-05 22:37:19
【问题描述】:
我正在帮助实现一个 SQL Server 2008 数据库,我有几列我想默认为序列中的下一个数字,但仍然可以随意手动插入数字。在 PostgreSQL 中,这是通过 SERIAL 数据类型和序列来完成的。不幸的是,这些东西在 SQL Server 中不存在。以下是我知道的行不通的方法。
- 除非您将 IDENTITY_INSERT 设置为 on,否则标识列不允许插入。在这种情况下,它可以按需要工作,但根据MSDN,此属性一次只能在一个表上设置,我想为多个表执行此操作。
- 可以将函数设置为字段的默认值,但由于函数无法在数据库中设置值,因此一旦设置了当前值,就无法更新计数。
- 存储过程可用于增加数字并将其返回,但不能将它们设置为列的默认值。
我现在采取的解决方法是简单地创建一个存储过程,该过程返回我想要的值并将其编码到 LINQ API 中,以便它自动发生。这会产生一些我想删除的样板代码。
我想在 SQL Server 中实现吗?
【问题讨论】:
标签: c# linq-to-sql sql-server-2008 postgresql