sql >> データベース >  >> RDS >> Sqlserver

IDENTITY列が1つしかないテーブルに行を挿入する

    IDENTITYである列が1つある場合は、これを実行してください

    INSERT MyTable DEFAULT VALUES;  --allows no column list. The default will be the IDENTITY
    SELECT SCOPE_IDENTITY();
    

    あなたがアイデンティティを持っていないなら、あなたはそれを設定することができますか?これが最善の方法です。上記のSQLを使用してください。

    そうでない場合は、新しい行を挿入します

    INSERT MyTable (admidid)
    OUTPUT INSERTED.admidid --returns result to caller
    SELECT ISNULL(MAX(admidid), 0) + 1 FROM MyTable
    

    注:

    • 高負荷では、MAXソリューションが重複して失敗する可能性があります
    • SCOPE_IDENTITYはです 事実、前ではありません
    • SCOPE_IDENTITYは、IDENTITY列でのみ機能します。 IDENT_CURRENTを使用したばかげたことも同じです
    • 出力句は、MAXソリューションのSCOPE_IDENTITYを置き換えます


    1. Javaでpl/sql関数を呼び出しますか?

    2. SQL Server ServerManagementStudioを使用したデータベースのインポート/エクスポート

    3. サーバーのタイムゾーン値「AEST」が認識されないか、複数のタイムゾーンを表します

    4. MySQLの頻度からパーセンタイルを計算する