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,而不用再去顾忌第三个参数。
  • 相关阅读:
    Codeforces 512E
    UOJ #36 -【清华集训2014】玛里苟斯(线性基+暴搜)
    Codeforces 1188E
    洛谷 P7163
    C++ Boost库 操作日期与时间
    C/C++ 搜索缝隙并插入ShellCode
    线性代数学习之正交性,标准正交矩阵和投影
    洛谷 P5851 [USACO19DEC]Greedy Pie Eaters P(区间dp)
    洛谷 [NOIP2009 普及组] 道路游戏(dp)
    洛谷 P2890 [USACO07OPEN]Cheapest Palindrome G(区间dp)
  • 原文地址:https://www.cnblogs.com/lumnm/p/1494794.html
Copyright © 2011-2022 走看看