日期:2014-05-19  浏览次数:20393 次

高分:如何插入有identity 的表.
表   xin   :
    id       name         address
      1         liu           china
      2         zhang       USA
      3         feng         england
      ...     ...
其中id为自增长

我想在表中插入数据   insert   into   xin   values(   , 'gu ', 'HK ');   报错
  insert   into   xin(nam,address)   values( 'gu ', 'HK ')   就可以,但是达不到我的要求.
我的要求是不必指列名也能顺利插入,就象第一行写的那样(因为有的表的列太多了,有100多列,我可不想一个一个的指定,都是默认顺序的)

------解决方案--------------------
SET IDENTITY_INSERT xin ON
insert into xin values( 1, 'gu ', 'HK ')
insert into xin values( 2, 'gu ', 'HK ')
SET IDENTITY_INSERT xin OFF
------解决方案--------------------
如果是这样的话,要注意序号一定要唯一,否则后果自负
呵呵
------解决方案--------------------

--如果除了ID列外,每列都追加数据,用如下:
insert into xin values( 'gu ', 'HK ');
------解决方案--------------------
--加上有如下列:

id(自动编号)
name
address
sex
tel
fax

insert into xin values( 'gu ', 'HK ', '男 ',null, '234567 ');


------解决方案--------------------
上面也可以 推荐使用存储过程
create proc a @name varchar(10),@address varchar(20) as
insert into xin(nam,address) values(@name,@address)
go
------解决方案--------------------
wangtiecheng(不知不为过,不学就是错!) 是正解:
insert into xin values( 'gu ', 'HK ');

系统引擎会默认情况下省略标识列的.

------解决方案--------------------
之所以称为自增列 它会自己会根据你预设的增加 所以你不用你管它的
------解决方案--------------------
insert into xin values( 'gu ', 'HK ')