(1)、例如:select * from MyTable   查出字段信息列如:
  aa   bb   cc   dd   ee   ff如果我想只显示aa\bb\cc\dd\ff 如何显示??不希望一个一个全部列出来,是否有个函数直接except掉?(2)、SQL Server数据库中,将一个字段设为自增长,如何取其目前种子的最大值。MAX不行,因为如果将当前最大的删掉后,取出的值不是种子的值。请问是否有什么函数可以做到?

解决方案 »

  1.   

    1:那就别select * 了啊,想现实哪个字段就select哪个字段被2:没看明白。
      

  2.   

    1、select aa, bb, cc, dd, ff from mytable
    2、我想你的意图是想获得插入的数据的id,除此以外,好像没有别的必要获得这个最大值。插入数据后,通过@@IDENTITY可以返回该条记录的自增型数据,如select @@IDENTITY
      

  3.   

    sql server联机帮助如是说:@@IDENTITY
    返回最后插入的标识值。语法
    @@IDENTITY返回类型
    numeric注释
    在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值。如果此语句激发一个或多个执行产生标识值的插入操作的触发器,则语句执行后立即调用 @@IDENTITY 将返回由触发器产生的最后的标识值。若 INSERT 或 SELECT INTO 语句失败或大容量复制失败,或事务被回滚,则 @@IDENTITY 值不会还原为以前的设置。在返回插入到表的 @@IDENTITY 列的最后一个值方面,@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函数类似。 @@IDENTITY 和 SCOPE_IDENTITY 将返回在当前会话的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY 只在当前作用域内返回值,而 @@IDENTITY 不限于特定的作用域。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回任何会话和任何作用域中为特定表生成的标识值。有关更多信息,请参见 IDENT_CURRENT。示例
    下面的示例向带有标识列的表中插入一行,并用 @@IDENTITY 显示在新行中使用的标识值。INSERT INTO jobs (job_desc,min_lvl,max_lvl)
    VALUES ('Accountant',12,125)
    SELECT @@IDENTITY AS 'Identity'
      

  4.   

    多谢,不过第一个问题好像还没解决,不知哪位大侠肯帮忙。
    select aa, bb, cc, dd, ff from mytable
    采用此法,若字段很多,SQL语句会很长。有没有不用列举那么多字段的方法啊?