SQLServer 2008 データ挿入・更新用ストアドプロシージャ
2022-01-08 11:14:25
ストアドプロシージャは非常に強力で、ビジネスロジック層をある程度置き換えることができます。
ここでは、ストアドプロシージャを使用してステートメントを挿入または更新する小さな例を示します。
1. データベースのテーブル構造
使用するデータベースは、Sql Server 2008です。
2. ストアドプロシージャを作成する
(1)の機能を実現するために 1)は、同じデータを持って、直接(戻り値:0)を返します。
(2)同じ主キーがありますが、データは別のデータ、更新処理(戻り値:2)です。
3) データがない場合、データ挿入処理(戻り値:1)。
異なるケースに応じてプロシージャの戻り値を設定し、異なる戻り値に応じて該当する処理を施したプロシージャを呼び出す。
(2) 以下のコードは基本機能のみを実装したもので、具体的なSqlのコードは以下の通りです。
Create proc sp_Insert_Student
@No char(10),
@Name varchar(20),
@Sex char(2),
@Age int,
@rtn int output
as
declare
@tmpName varchar(20),
@tmpSex char(2),
@tmpAge int
if exists(select * from Student where No=@No)
begin
select @tmpName=Name,@tmpSex=Sex,@tmpAge=Age from Student where No=@No
if ((@tmpName=@Name) and (@tmpSex=@Sex) and (@tmpAge=@Age))
begin
set @rtn=0 -- with the same data, return the value directly
end
else
begin
update Student set Name=@Name,Sex=@Sex,Age=@Age where No=@No
set @rtn=2 ---with the same primary key, update the data
end
end
else
begin
insert into Student values(@No,@Name,@Sex,@Age)
set @rtn=1 --no identical data, insert
end
3. ストアドプロシージャの呼び出し
ここで、Sql Serverの環境では、呼び出しの簡単な実装では、プログラムでも呼び出すことは非常に便利です。
具体的なコードは以下の通りです。
declare @rtn int
exec sp_Insert_Student '1101','Zhang San','Male',23,@rtn output
if @rtn=0
print 'The same one already exists.'
else if @rtn=1
print 'Inserted successfully.'
else
print 'Update successful'
1つのプロシージャで3つのケースを実装しており、非常に効率的かつ柔軟に使用することができます。ご参考になれば幸いです。
関連
-
SQL Server 2008のOrder byは、union句で直接利用できない
-
SQL Server 2008のデータベースを復元する方法
-
SQL Server 2008 R2のCPUとメモリ使用量の増加に対する2つの解決策
-
SQL Server 2008のオープン入力のSAパスワードプロンプトは、データベースソリューションにログインすることはできません
-
SQL Server 2008のデータベース管理システムは、SQLステートメントを使用して、ログインユーザの手順を作成するために説明した
-
SQL Server 2008r2 データベースサービスにおける各種起動不能の解決方法 (詳細)
-
SQL Server 2008 R2 データベースミラーリング導入マニュアル(デュアルコンピュータ) SQL Server 2014 も適用可能です。
-
ログインとパーミッションのロール制御のためのSpringセキュリティ
-
SQL 2008のアンインストールに関する問題の解決策(コンピューターの再起動に失敗、SQLのアンインストーラーが見つからない)
-
SQL Server 2008データベースの定期的な自動バックアップを設定する方法
最新
-
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 Server 2008 データベース分散クエリの知識
-
sqlserver 2008 データベースに接続する Java コード
-
空白の値を他の値に置き換えるSQL
-
解決 SQL Server 2008は、". "ローカルローカル接続データベースを使用することはできません問題
-
Sql Server 2008データベースで新しい割り当てユーザーを作成する詳細な手順
-
sql server 2008データベース移行の2つの方法
-
SQL2008 復元 SQL2005 バックアップファイル 不成功の解決法
-
SQL Server 2008R2チュートリアルのグラフィックの詳細
-
SQLServerウェブサイト構築例
-
Sql Server 2008R2アップグレード Sql Server 2012グラフィックチュートリアル