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

私があなたの質問を正しく受け取っている場合は、挿入後に値を返したいと考えています。私はあなたがこのようなものを探していると思います:-

  OUTPUT Inserted.ID

つまり、

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も確認できます

同じスコープ内の ID 列に最後に挿入された ID 値を返します。スコープは、モジュール (ストアド プロシージャ、トリガー、関数、またはバッチ) です。したがって、2 つのステートメントが同じストアド プロシージャ、関数、またはバッチ内にある場合、これらのステートメントは同じスコープ内にあります。

これを使用して試すことができます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 に答える