比如我的主表主键是流水号(日期+流水号),当我在主表插入一行数据,会自动生成一个流水号。。插入数据的同时,我如何能取得这个主表的主键值(流水号)?

解决方案 »

  1.   

    INSERT INTO tableName (fieldname ...) values (value ...) SELECT @@IDENTITY AS returnName;
      

  2.   

    不行吧,我的不是IDENTITY的。。主键的默认值是个函数生成流水号
      

  3.   

    insert . ...  returning , 不过垃圾 sql server 好像不支持.
      

  4.   

    假设生成主键的函数名为:GetId()则SQL代码可以这样写:declare @id varchar(500);
    set @id=GetId();
    insert into tab(Id) values(@id);
    select @id这样就可以在结果集中得到生成的主键,
    也可以将上述代码写在存储过程中,通过返回值、结果集或是output参数返回生成的主键。