2012-01-08 2 views
-1

実行したいコンセプトは、IDが使用されていない場合はテーブルの最後のIDを取得し、IDは自動インクリメントして最後のIDを返します。それはが失敗します。それは、彼らが自分自身ではないロールを行いT-SQLのIF-STATEMENTを使用した複数のクエリ

のために存在するものです:

IF (SELECT COUNT(*) FROM Table) = 0 
    INSERT INTO Table (Field1) VALUES ("123"); 
ELSE 
    (SELECT MAX(Field1) FROM Table) AS field1Data; 
END 

IF (SELECT field2 FRom Table WHERE Field1 = field1Data) = 0 
    RETURN field1Data; 
ELSE 
    INSERT INTO Table (Field1) VALUES (CONVERT(field1Data, INT) + 1); 
    RETURN CONVERT(field1Data, INT) + 1; 
END 

これを行う方法上の任意の助け.. :)

+0

おそらく、この解決策が必要と思われる理由を説明してください。 – gbn

答えて

1

IDENTITY列を使用します読み込み中に並行処理が安全でないために

+0

アイデンティティは、その列の値を自動的にインクリメントすることです。 IDがこの形式の「2012-123」の場合はどうなりますか? –

+1

@vrynxzent:あなたのCONVERTをintにすることはありません。あなたの実際の質問に答えました。未知の仮説ではありません。 – gbn

関連する問題