SQL Serverデータベースによる添削とストレージ・プロシージャの実装

2258 ワード

SQL Serverデータベースの追加削除と変更を実現
     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