sql-server - 自动递增 SQL 列

标签 sql-server auto-increment

我必须在我的 SQL Server 2008 中创建一个新表,并将我的日期列设置为从 Getdate() 开始自动递增 1 天。

第一个条目应使用当前日期插入,第二个条目应使用明天的日期,第三个条目应使用明天的日期,依此类推。

而且我还想知道是否有任何方法可以使用更新命令手动执行此操作,它将今天的日期放在第 1 列,明天放在第 2 列。

最佳答案

无论您究竟需要做什么,此函数都允许您进行日期递增。

http://technet.microsoft.com/en-us/library/ms186819.aspx

生成 future 某一天的日期示例:

SELECT DATEADD(dd,1,GETDATE());

**

1) 如果您需要在插入的每一行中生成一个递增的日期,您当然可以使用触发器并在那个时候进行更新。

Similar question with example of using trigger to do a row update

2) 如果您需要生成多行数据并填充表格,您可以执行 INSERT 操作,然后进行更新以生成日期。对您的表结构一无所知,也许这样的事情会起作用:

UPDATE T 
SET T.date_col = 
(
  SELECT 
    TOP(1) DATEADD(dd,1,date_col) 
  FROM myTable
  WHERE
    ID = T.ID - 1
)
FROM myTable T
WHERE
  T.date_col IS NULL;

关于sql-server - 自动递增 SQL 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22330552/

相关文章:

java.lang.IllegalStateException : Cannot load driver class: com. microsoft.sqlserver.jdbc.SQLServerDriver

sql - 全文搜索用于提取文本片段(返回预期文本及其周围)

sql-server - 在 EF6 中执行复杂的原始 SQL 查询

mysql - key '6343' 的重复条目 'PRIMARY'

ruby-on-rails - postgresql nextval 生成现有值

mysql - 添加用户并在 1 个查询中从数据库中选择该用户 ID

sql - 返回日期范围之间的所有月份和年份 - SQL

sql-server - 使用 Windows 加密文件系统 (EFS) 在 FILESTREAMS 上进行 SQL Server 2012 全文搜索

mysql - 2 auto_increment 字段,其中 1 重置

postgresql - 避免在多台机器中 SERIAL 列重复递增