ホームページ データベース mysql チュートリアル SQLサーバーストアドプロシージャ

SQLサーバーストアドプロシージャ

Dec 03, 2016 am 10:23 AM
server sql ストレージ

ストアド プロシージャ

[Create はストアド プロシージャを作成すること、Alter はストアド プロシージャを変更および変更することです]

[ストアド プロシージャを初めて作成する場合は、create を使用します。ストアド プロシージャのプログラムを変更する場合は、replace を使用します。 alter で作成してから実行する]

[データベースでは、開始と終了は中括弧を意味します]

· ストアド プロシージャを作成する形式:

--(プロシージャは proc と省略できます) proc はプログラムとステップを意味します。ストアド プロシージャ名が続きます

create proc ストアド プロシージャ名

as

コード ブロック

Go

--exec は実行を意味します。ストアド プロシージャを実行

Exec ストアド プロシージャ名

--------ストアド プロシージャを変更
alter proc hehe ---alter は変更、変更
を意味します
生徒番号、フェンシュウからの中国語スコアを選択
go
execへへ

---------------複数のテーブルをクエリ

create proc Chaxun

as

begin

select * from fenshu

select * from jiaoshi

select * from xuesheng

end

go

exec chaxun

--------------パラメータ付きストアドプロシージャ

create proc chucunguocheng

@yican varchar(20)、@yicanは正式を意味しますパラメータ

@ercan varchar(20)

as

begin

print @yican+@ercan

end

go

exec chucunguocheng 'こんにちは'、'中国'

質問例:

---- ---学生番号を入力して、学生が優秀であるか、卒業したかどうかを判断します (3 つのコースに合格すると優秀とみなされ、2 つのコースに合格すると修了とみなされます)

alter proc biye

@xuehao int — 入力変数を作成する

as

begin

declare @y int

declare @s int

declare @w int

declare @zongshu int

select @y=COUNT(*) from fenshu where 学生 ID=@xuehao と中国語スコア> =60

学生番号=@xuehao、数学のスコア>=60のフェンシュから@s=COUNT(*)を選択

学生番号=@xuehao、英語のスコア>=60のフェンシュから@w=COUNT(*)を選択

set @zongshu=@y+@s+@w

if @zongshu=3

print 'Excellent'

if @zongshu =2

print 'Complete'

if @ zongshu = 1g '卒業していません' を印刷

@zongshu = 0

'入力エラー' を印刷

End

Go

exec Biye 1

結果: ------- -------------------- --- 総合演習 SQLサーバーストアドプロシージャ

(ストアド プロシージャの総合演習)

商品テーブルを作成します: 番号、商品名、単位、価格、在庫数、備考。 (10個のデータ)

の後、商品を購入します。商品がすでに存在する場合は、数量を増やしてデータベーステーブルに追加します。

発送、誰かが商品を欲しい場合は、数量が十分であるかどうかを判断し、在庫を十分に減らします。そうでない場合は、欠品を通知します。

データベース内のデータがある場合は、名前に基づいていつでも削除します。ない場合は、通知します。

----------データベースとデータテーブルの作成、データの挿入----------

データベースノートブックの作成

go

テーブルの作成 bijiben

(

数値 int,

名前 nvarchar(20),

備考 varchar(20),

価格 int,

在庫 int,

単位 nvarchar(10)

)

go -- ---(ランダムランキング)------

bijiben 値に挿入(1,'Apple','macbook',12000,10,'United States')

bijiben 値に挿入(2,' Acer ','acer',3500,20,'中国')

bijiben 値に挿入(3,'Asus','asus',3500,25,'中国')

bijiben 値に挿入(4, 'Dell ','dell',4300,30,'米国')

bijiben 値に挿入(5,'神州','hass',4000,20,'中国')

bijiben 値に挿入(6, ' Lenovo','lenovo',4200,30,'中国')

bijiben 値に挿入(7,'HP','ph',3600,20,'米国')

bijiben 値に挿入(8, 'Samsung','samsung',3700,10,'Japan')

bijiben 値に挿入(9,'Sony','sony',7000,10,'Japan')

bijiben 値に挿入(10, '東芝','東芝',3200,10,'日本')

*ビジベンから選択

---------------------- -入荷- -----------------------

create proc jinhuo --購入ストアドプロシージャを作成

@bianhao int, --購入番号

@bjbn nvarchar( 20)、--ノートブック名

@beizhu nvarchar(20)、--備考

@jiage int、--価格

@jinhuo int、-単位数

@danwei nvarchar(20) )--単位

として

開始

@ybjbn nvarchar(20),@ykc int を宣言 --@ykc はデータ内の元の在庫番号です

select @ybjbn=count(name) from bijiben where name=@bjbn

if @ybjbn=0 - -データベースに入力されたデータがない場合

begin

bijiben 値 (@bianhao,@bjbn,@beizhu,@jiage,@jinhuo,@danwei) に挿入

print'新しいコンピューターが正常に追加されました! '

end

else if @ybjbn=1 -- データベースに入力データがある場合

begin

select @ykc=stock from bijiben where name=@bjbn

set @ykc=@ykc+@jinhuo

B Update bijiben set inventory =@ykc where name =@bjbn

prop' このコンピュータ インベントリは正常に追加されました。 '

終了

終了

go

exec jinhuo 11,'Dell','dell',4200,10,'United States'

---------------- -----配送--------------------------------

create proc chuhuo --配送ストアド プロシージャを作成します

@name nvarchar(20 ), -- 出荷されるノートブックの名前

@shuliang int -- 出荷される数量

as

begin

宣言 @ygeshu int,@hgeshu int --@ygeshuはデータベースの元の在庫、@hgeshu トランザクション

select @ygeshu=stock from bijiben where name=@name

if @shuliang>@ygeshu -- 出荷数量が在庫数量より大きい場合

print '申し訳ありません、在庫が不足しています~~'

else

begin

set @hgeshu=@ygeshu-@shuliang

update bijiben set inventory=@hgeshu where name=@name --トランザクション

print 'トランザクションは成功しました! '

終了

終了

go

exec chuhuo 'Apple',11

--------------------------------------1つ削除ノートブック データ-----

create proc qingchu

@scbjbn nvarchar(20) --削除するノートブックの名前

as

begin

宣言 @sgeshu int --ノートブックが見つかります カウント

select @sgeshu=COUNT(*) from bijiben where name=@scbjbn

if @sgeshu=1

begin

delete from bijiben where name=@scbjbn

print'ノートブックのデータは無事に削除されました! '

end

if @sgeshu=0

print 'この名前のノートブックは見つかりません~~'

end

exec qingchu 'Apple'


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Hibernate フレームワークにおける HQL と SQL の違いは何ですか? Hibernate フレームワークにおける HQL と SQL の違いは何ですか? Apr 17, 2024 pm 02:57 PM

HQL と SQL は Hibernate フレームワークで比較されます。HQL (1. オブジェクト指向構文、2. データベースに依存しないクエリ、3. タイプ セーフティ)、SQL はデータベースを直接操作します (1. データベースに依存しない標準、2. 複雑な実行可能ファイル)。クエリとデータ操作)。

Oracle SQLでの除算演算の使用法 Oracle SQLでの除算演算の使用法 Mar 10, 2024 pm 03:06 PM

「OracleSQLでの除算演算の使用方法」 OracleSQLでは、除算演算は一般的な数学演算の1つです。データのクエリと処理中に、除算演算はフィールド間の比率を計算したり、特定の値間の論理関係を導出したりするのに役立ちます。この記事では、OracleSQL での除算演算の使用法を紹介し、具体的なコード例を示します。 1. OracleSQL における除算演算の 2 つの方法 OracleSQL では、除算演算を 2 つの異なる方法で実行できます。

Oracle と DB2 の SQL 構文の比較と相違点 Oracle と DB2 の SQL 構文の比較と相違点 Mar 11, 2024 pm 12:09 PM

Oracle と DB2 は一般的に使用される 2 つのリレーショナル データベース管理システムであり、それぞれに独自の SQL 構文と特性があります。この記事では、Oracle と DB2 の SQL 構文を比較し、相違点を示し、具体的なコード例を示します。データベース接続 Oracle では、次のステートメントを使用してデータベースに接続します: CONNECTusername/password@database DB2 では、データベースに接続するステートメントは次のとおりです: CONNECTTOdataba

MyBatis動的SQLタグのSetタグ機能の詳細説明 MyBatis動的SQLタグのSetタグ機能の詳細説明 Feb 26, 2024 pm 07:48 PM

MyBatis 動的 SQL タグの解釈: Set タグの使用法の詳細な説明 MyBatis は、豊富な動的 SQL タグを提供し、データベース操作ステートメントを柔軟に構築できる優れた永続層フレームワークです。このうち、Set タグは、UPDATE ステートメントで SET 句を生成するために使用され、更新操作でよく使用されます。この記事では、MyBatis での Set タグの使用法を詳細に説明し、特定のコード例を通じてその機能を示します。 SetタグとはMyBatiで使用するSetタグです。

SQL の ID 属性は何を意味しますか? SQL の ID 属性は何を意味しますか? Feb 19, 2024 am 11:24 AM

SQL における Identity とは何ですか? 具体的なコード例が必要です。SQL では、Identity は自動インクリメント数値の生成に使用される特別なデータ型です。多くの場合、テーブル内のデータの各行を一意に識別するために使用されます。 Identity 列は、各レコードが一意の識別子を持つようにするために、主キー列と組み合わせてよく使用されます。この記事では、Identity の使用方法といくつかの実用的なコード例について詳しく説明します。 Identity の基本的な使用方法は、テーブルを作成するときに Identity を使用することです。

ファーウェイは革新的なMEDストレージ製品を来年発売予定:ラック容量は10PBを超え、消費電力は2kW未満 ファーウェイは革新的なMEDストレージ製品を来年発売予定:ラック容量は10PBを超え、消費電力は2kW未満 Mar 07, 2024 pm 10:43 PM

このウェブサイトは3月7日、ファーウェイのデータストレージ製品ラインの社長である周岳峰博士が最近MWC2024カンファレンスに出席し、特にウォームデータ(WarmData)とコールドデータ(ColdData)用に設計された新世代のOceanStorArctic磁電ストレージソリューションをデモンストレーションしたと報じた。ファーウェイのデータストレージ製品ラインの社長である周岳峰氏は、一連の革新的なソリューションをリリースした 画像出典: このサイトに添付されているファーウェイの公式プレスリリースは次のとおりです: このソリューションのコストは磁気テープのコストより 20% 低く、そのコストは磁気テープのコストよりも 20% 低くなります。消費電力はハードディスクよりも90%低いです。外国のテクノロジーメディアのblocksandfilesによると、ファーウェイの広報担当者も磁気電子ストレージソリューションに関する情報を明らかにした:ファーウェイの磁気電子ディスク(MED)は磁気ストレージメディアの主要な革新である。初代ME

Windows サーバーのバックアップをインストール、アンインストール、リセットする方法 Windows サーバーのバックアップをインストール、アンインストール、リセットする方法 Mar 06, 2024 am 10:37 AM

WindowsServerBackup は、WindowsServer オペレーティング システムに付属する機能で、ユーザーが重要なデータとシステム構成を保護し、中小企業、エンタープライズ レベルの企業に完全なバックアップおよび回復ソリューションを提供できるように設計されています。この機能を使用できるのは、Server2022 以降を実行しているユーザーのみです。この記事では、WindowsServerBackup のインストール、アンインストール、またはリセットの方法を説明します。 Windows Server バックアップをリセットする方法 サーバー バックアップで問題が発生したり、バックアップに時間がかかりすぎたり、保存されているファイルにアクセスできない場合は、Windows Server バックアップ設定をリセットすることを検討してください。 Windowsをリセットするには

SQL の 5120 エラーを解決する方法 SQL の 5120 エラーを解決する方法 Mar 06, 2024 pm 04:33 PM

解決策: 1. ログインしているユーザーがデータベースにアクセスまたは操作するための十分な権限を持っているかどうかを確認し、ユーザーが正しい権限を持っているかどうかを確認します; 2. SQL Server サービスのアカウントに指定されたファイルまたはデータベースにアクセスする権限があるかどうかを確認します。 3. 指定されたデータベース ファイルが他のプロセスによって開かれているかロックされているかどうかを確認し、ファイルを閉じるか解放して、クエリを再実行します。管理者として試してください。Management Studio をなどとして実行します。

See all articles