[解決済み] IDENTITY列が1つしかないテーブルに行を挿入する[重複]。
2023-06-15 12:26:31
質問
私は、主キーであるadminIdという1つのカラムのみを持つAdministratorテーブルを持っています。ビジネスルールのため、このようにする必要があります。
このようなテーブルに値を挿入するストアドプロシージャをどのように書くことができるか、きっぱりと理解したいのです。SQL Server と T-SQL を使用しており、SCOPE_IDENTITY() を使用しようとしましたが、テーブルが INSERT_IDENTITY を false または off にしているため、うまくいきません。
私は、新しい行を挿入できるようにするためだけに、ダミー値を挿入しないようにしたいと思います。 ありがとうございます!
どのように解決するのですか?
IDENTITYのカラムが1つでもあれば、次のようにすればよいでしょう。
INSERT MyTable DEFAULT VALUES; --allows no column list. The default will be the IDENTITY
SELECT SCOPE_IDENTITY();
IDがない場合、設定できるのでしょうか?これが一番いい方法です。そして上の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 を使用する馬鹿な行為も同様です。
- 出力節はSCOPE_IDENTITYをMAXソリューションに置き換えます。
関連
-
ERROR 1136 (21S01) を解決してください。列の数が Mysql の行 1 の値の数と一致しません。
-
MySQL - ストアドプロシージャ (データ型、関数)
-
org.postgresql.util.PSQLException: ERROR: リレーション "userinfo" の列 "loginid" が存在しません。
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] SQLの複数列の順序付け
-
[解決済み] 文字列の一部をUPDATEおよびREPLACEする。
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SQLラーニングノート--オペランドには1つのカラムが必要です。
-
[解決済み] ストアドプロシージャ 'dbo.aspnet_CheckSchemaVersion' が見つかりませんでした。
-
[解決済み] LINQでInclude()は何をするのですか?
-
[解決済み] Oracleで上位100行を選択する方法は?
-
[解決済み] SQLのSELECTでIF...THENを実行するにはどうすればよいですか?
-
[解決済み] SQLiteデータベースで、一度に複数行を挿入することは可能ですか?
-
[解決済み] SQL Serverには、.NETのMath.Maxのような2つの値を取るMax関数はありますか?
-
[解決済み] SQL Server 2008を使用してIDENTITY_INSERTをオン/オフする方法は?
-
[解決済み] SQL Serverで結果をページ分割する最も良い方法は何ですか?
-
[解決済み] IDENTITYカラムが1つだけのテーブルに挿入するには?