2012-04-20 2 views
2

SQLサーバーでは、@@Identityを返すだけで最後の挿入の値がIDになります。ElevateDBを使用してレコードを挿入するときにID値を返す方法

を使用してこれを行う方法はありますか?

+0

ほとんどの場合、SQL ServerではSCOPE_IDENTITY()を使用する方がよいことに注意してください。 – Linas

+0

@LinasそれはSELECT @@ IDENTITYのコンセプトで、私がミミックに興味を持っています。 –

答えて

2

ElevateDBは、指定された表の指定された列に割り当てられた最後のID値を戻すLASTIDENTITY関数を提供します。

SELECT LASTIDENTITY('Customer', 'CustNo') AS LastCustNo 


また、INSERT文を使用して、同じ情報を得ることができます。 INSERTが実行された後(IDENTITY列を含む)任意の生成/計算カラムの値が 同じパラメータを介して取得することができ ように自動的にIN /へのすべてのパラメータを設定

EDBQuery1.SQL.Clear; 
EDBQuery1.SQL.Add('INSERT INTO Table1 (ID, Text1)'); 
EDBQuery1.SQL.Add('VALUES(:ID, :Text1)'); 
EDBQuery1.Prepare; 
EDBQuery1.ParamByName('Text1').AsString:='Some text'; 
EDBQuery1.ExecSQL; 
ShowMessage(EDBQuery1.ParamByName('ID').AsString); 

INSERTステートメント。

上記の例は、Support Forumです。

0

ElevateDBは、IDタイプまたは自動インクリメントカラムタイプをサポートしていません。したがって、@@Identityのような構文はありません。

+0

これは本当ですか? http://bit.ly/HZGvluとhttp://bit.ly/I0ogqsを参照してください。 – stukelly

+0

@stukelly - あなたのリンクの1つがLASTIDENTITYを指しています。これを答えて、あなたが私の投票を得ます。 –

+0

@stukellyあなたは正しいです、私は間違っています! –

関連する問題