1
CREATE PROCEDURE [dbo].[sp_HeatMap_Paper]
@Grade varchar(150)=NULL,
@Site varchar(250)=NULL,
@TRef varchar(15)=NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @uregref varchar(50), @regTID varchar(8),
@testValue varchar(80), @testResultID int,
@lowerL1 varchar(20), @upperL1 varchar(20),
@lowerL2 varchar(20), @upperL2 varchar(20)
BEGIN TRANSACTION
BEGIN TRY
DELETE FROM HeatMap;
select top 1 @uregref = URegRef from NA_PAPER_HEAT_MAP where RSDESCRIPTION= @Grade and BOX_PLANT1= @Site;
select @regTID = RegTID from REGKEY where URegRef = @uregref;
select @testValue=TestResult,@testResultID=Result_ID from RESULTDATA where [email protected] and [email protected];
SELECT @lowerL1=Lower, @upperL1=Upper from ResultLimit WHERE Priority = 1 and [email protected];
SELECT @lowerL2=Lower, @upperL2=Upper from ResultLimit WHERE Priority = 2 and [email protected];
Insert into HeatMap (Grade,Site,TestValue,TRef,LowerLimitL1,UpperLimitL1,LowerLimitL2,UpperLimitL2)
values (@Grade,@Site,@testValue,@TRef,@lowerL1,@upperL1,@lowerL2,@upperL2)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
Return Error_Message()
END CATCH
END
GO
をビュー名を渡すために、ここで'NA_PAPER_HEAT_MAP'
私は、パラメータ@viewName
私はこのストアドプロシージャにビュー名を渡す方法SQL Serverでストアドプロシージャに2014
サイドノート:ストアドプロシージャのプレフィックス 'sp_'を使用しないでください**。マイクロソフトは、[*ストアドプロシージャの名前付け*を参照してください](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx)、およびあなたはいつか名前衝突のリスクを将来実行します。 [ストアドプロシージャのパフォーマンスにも悪い](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)単に 'sp_'を避け、他の何かを接頭辞として使うのが最善です - 接頭辞はまったくありません! –
これは通常、壊れたデータモデルの兆候です。同一の構造を持つ複数のテーブル(またはここではビュー)がある場合は、単一のテーブル(またはビュー)でなければならないことがよくあります。あなたの*データ*の一部が*メタデータ*になっていることを発見すると、特にテーブル名に埋め込まれています。 –
あなたのspの名前は '... HeatMap_Paper'で、 'NA_PAPER_HEAT_MAP'と' HeatMap'を使っています。他のビューやテーブルでは、対応するspを作成してそれらを操作します。 'us_B_Botthead_Beavis'は' NA_BUTTHEAD_STUFF'から選択し、 'BEAVIS_SO_ON'に挿入します。 –