zoukankan      html  css  js  c++  java
  • sql select 如何定义自增列?

    今天在项目中遇到一个问题,想在存储过程中将查询出来的数据放到一个临时表中,不想create table(这人懒 ),但是临时表中需要用到一个自增列,怎么办呢?只好想办法啦  结果如下:

    drop table #temp
    SELECT id = IDENTITY(int,1,1),* INTO #TEMP FROM myTable
    select * from #temp

    说明:id = IDENTITY(int,1,1),这句建立自增列的。其他的也不用多说了!^_^

    参考资料:

    SQL Server中,经常会用到Identity标识列,这种自增长的字段操作起来的确是比较方便。但它有时还会带来一些麻烦。

    示例一 当表中被删除了某些数据的时候,自增长列的编号就不再是一个连线的数列。这种时候我们可以用以下方案来解决。

    SET IDENTITY_INSERT [TABLE] [ON|OFF]

    允许将显式值插入表的标识列中,当设置为ON时,这时可能在INSERT操作时手工指定插入到标识列中的编号,同时必须在操作完成后,将IDENTITY_INSERT还原成OFF,否则下次插入的时候必须指定编号,那不然就无法完成INSERT操作。

    示例二:当表中的记录被全部删除,但此时标识列的值越来越大的时候,如果不加以重置,它还会无休止的增长。这个时候我们就要用到:

    DBCC CHECKIDENTTABLE, [RESEED|NORESEED], [1])
        将把指定表的种子值强制重设为1。然而,你可能不想将种子重设为1,在这种情况下,你可以用你想用的种子值替代第三个参数。有时候你可能想知道当前的种子,而不是想重设种子,这时你就要用到NORESEED,而不用再去顾忌第三个参数。
  • 相关阅读:
    Freemarker与Springmvc
    Freemarker与普通java
    Freemarker与Servlet
    跳舞的时间插件
    video标签播放视频
    字符串反转
    菲波拉契数列
    求所有子数组的和的最大值
    Spring AOP 5种通知与java动态代理
    线程维护日志队列
  • 原文地址:https://www.cnblogs.com/lumnm/p/1494794.html
Copyright © 2011-2022 走看看