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_'並將其他內容用作前綴 - 或者根本沒有前綴! –
這通常是數據模型中斷的標誌 - 如果您有多個具有相同結構的表(或此處的視圖),則通常情況下它們應該是單個表(或視圖)。通常伴隨着發現你的一些* data *已經變成* metadata *,特別是它被嵌入到表名中。 –
你的sp被命名爲'... HeatMap_Paper'並且正在使用'NA_PAPER_HEAT_MAP'和'HeatMap'。對於任何其他視圖和表格,創建對應的sp以與它們一起工作,例如, 'usp_Butthead_Beavis'可以從'NA_BUTTHEAD_STUFF'中選擇並插入'BEAVIS_SO_ON'中。 –