1

我有一个插入脚本,我试图在其中提取值

这是脚本

    @scriptprod=INSERT  intoProducts_Details
        ( VAL_ID ,
          ProductID ,
          SONumber ,
          ProductTypeName ,
          QuantitySold ,
          Hours ,
          Comments ,
          Synch_Status ,
          ProdID
        )
VALUES  ( 'V420131010213137TEST' ,
          '186' ,
          '5000000010' ,
          'Bundled Anesthesia' ,
          '9' ,
          '12.00' ,
          'test anas' ,
          '' ,
          'PD20131011121909999000'
        )

我试着用喜欢

substring(
@scriptprod,
charindex('PD20',@scriptprod,0),
LEN(@scriptprod)-CHARINDEX('PD20',@scriptprod,0)-1)

我没有得到请帮忙

4

1 回答 1

0

如果我正确地回答了您的问题,那么您希望在 Insert 之后返回一个值。我认为您正在寻找这样的东西:-

  OUTPUT Inserted.ID

IE,

Insert intoProducts_Details (VAL_ID,ProductID,SONumber,ProductTypeName,QuantitySold,Hours,Comments,Synch_Status,ProdID) 
OUTPUT Inserted.ID
Values ('V420131010213137TEST','186','5000000010','Bundled Anesthesia','9','12.00','test anas','','PD20131011121909999000')

您还可以检查SCOPE_IDENTITY

返回插入到同一范围内的标识列中的最后一个标识值。范围是一个模块:存储过程、触发器、函数或批处理。因此,如果两条语句在同一个存储过程、函数或批处理中,则它们属于同一范围。

您可以尝试使用SCOPE_IDENTITY

Insert intoProducts_Details (VAL_ID,ProductID,SONumber,ProductTypeName,QuantitySold,Hours,Comments,Synch_Status,ProdID) 
    OUTPUT Inserted.ID
    Values ('V420131010213137TEST','186','5000000010','Bundled Anesthesia','9','12.00','test anas','','PD20131011121909999000')

@scriptprod = SELECT SCOPE_IDENTITY()

编辑:-

如果您想从数据库中获取一些值,那么您可以使用简单的select命令。

select * from table where id = 186;

否则,如果您想在插入操作完成之前获取值,那么您必须将整个值视为 varchar,然后搜索您想要的字符串!

于 2013-10-25T14:37:32.593 回答