SQL Serverデータベースによる添削とストレージ・プロシージャの実装
SQL Serverデータベースの追加削除と変更を実現
1.ストレージ・プロシージャとは?
ストレージ・プロシージャはSQL文と制御文のプリコンパイル・セットであり、データベースに保存され、アプリケーション・コールによって実行され、ユーザーが変数、論理制御文、その他の強力なプログラミング機能を宣言できるようにします.
ストレージ・プロシージャには、パラメータを受信し、パラメータを出力し、単一または複数の結果セットと戻り値を返す論理制御文とデータ操作文が含まれます.
2.ストレージ・プロシージャのメリット
モジュール化されたプログラム設計の実行速度が速く、ネットワークトラフィックを低減し、良好なセキュリティを有する
ストアド・プロシージャを作成する構文:
CREATE PROC[EDURE]ストアド・プロシージャ名
[{@パラメータ1データ型}[=デフォルト][OUTPUT]
............
{@パラメータnデータ型}[=デフォルト][OUTPUT]
]
AS
SQL文
ストアド・プロシージャ構文を削除するには、次の手順に従います.
DROP PROC[EDURE]ストアド・プロシージャ名
ストレージ・プロシージャおよびエクストラクション・サンプル・コード:
--追加
1.ストレージ・プロシージャとは?
ストレージ・プロシージャはSQL文と制御文のプリコンパイル・セットであり、データベースに保存され、アプリケーション・コールによって実行され、ユーザーが変数、論理制御文、その他の強力なプログラミング機能を宣言できるようにします.
ストレージ・プロシージャには、パラメータを受信し、パラメータを出力し、単一または複数の結果セットと戻り値を返す論理制御文とデータ操作文が含まれます.
2.ストレージ・プロシージャのメリット
モジュール化されたプログラム設計の実行速度が速く、ネットワークトラフィックを低減し、良好なセキュリティを有する
ストアド・プロシージャを作成する構文:
CREATE PROC[EDURE]ストアド・プロシージャ名
[{@パラメータ1データ型}[=デフォルト][OUTPUT]
............
{@パラメータnデータ型}[=デフォルト][OUTPUT]
]
AS
SQL文
ストアド・プロシージャ構文を削除するには、次の手順に従います.
DROP PROC[EDURE]ストアド・プロシージャ名
ストレージ・プロシージャおよびエクストラクション・サンプル・コード:
--追加
create procedure usp_add
(
@table nvarchar(255),
@values nvarchar(max)=null
)
as
declare @sql nvarchar(max)
set @sql='insert into '+@table
if @values is not null
set @sql='insert into '+@table+' values('+@values+')'
exec sp_executesql @sql
select @@IDENTITY
go
exec usp_Add ' ' ,''' '',50,200'
go
--
create procedure usp_delete --
(
@table nvarchar(255),
@where nvarchar(max)=null
)
as
declare @sql nvarchar(max)
set @sql='delete '+@table
if @where is not null
set @sql+=' where '+@where
exec sp_executesql @sql
go
exec usp_delete ' ','id=1'
go
--
create procedure usp_update
(
@table nvarchar(255),
@set nvarchar(max),
@where nvarchar(max)=null
)
as
declare @sql nvarchar(max)
set @sql='update '+@table+' set '+@set
if @where is not null
set @sql+=' where '+@where
exec sp_executesql @sql
go
exec usp_update ' ','StockName='' ''','id=2'
go
--
create procedure usp_select
(
@table nvarchar(255),
@where nvarchar(max)=null
)
as
declare @sql nvarchar(max)
set @sql='select * from '+@table
if @where is not null
set @sql=@sql+' where '+@where
exec sp_executesql @sql
go
exec usp_select 'Stock'
go
exec usp_select 'Stock','id=2'
go