Code:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_AddParameterValue]
@ParameterType INT,
@TPK INT,
@Param VarChar(100),
@Value VarChar(100),
@Comments Text
AS
DECLARE @PPK INT,@i INT,@schema VarChar(50),@sql NVarChar(512)
IF @ParameterType=1
BEGIN
SET @schema = (SELECT schema_name());
SET @sql = N'SELECT ParameterPK FROM ['+@schema+'].[Parameters] WHERE Parameter = '''+@Param+''' AND ParameterType = 1';
EXEC sp_executesql
@query = @sql,
@params = N'@PPK INT OUTPUT',
@PPK = @PPK OUTPUT;
SET @PPK = @PPK;
SET @sql = 'INSERT INTO [' + @schema + '].[AirToParameter] (AirPK,ParameterPK,Value,Comment) VALUES (@TablePK,@ID,@Val,@Comm)';
EXEC sp_executesql
@query = @sql,
@params = N'@TablePK INT, @ID INT, @Val VarChar(50), @Comm VarChar(255)',
@TablePK = @TPK, @ID = @i, @Val = @Value, @Comm = @Comments;
END
IF @ParameterType=2
BEGIN
SET @schema = (SELECT schema_name());
SET @sql = N'SELECT ParameterPK FROM ['+@schema+'].[Parameters] WHERE Parameter = '''+@Param+''' AND ParameterType = 2';
EXEC sp_executesql
@query = @sql,
@params = N'@PPK INT OUTPUT',
@PPK = @PPK OUTPUT;
SET @i = @PPK;
SET @sql = 'INSERT INTO [' + @schema + '].[AnimalToParameter] (AnimalPK,ParameterPK,Value,Comment) VALUES (@TablePK,@ID,@Val,@Comm)';
EXEC sp_executesql
@query = @sql,
@params = N'@TablePK INT, @ID INT, @Val VarChar(50), @Comm VarChar(255)',
@TablePK = @TPK, @ID = @i, @Val = @Value, @Comm = @Comments
END
IF @ParameterType=3
BEGIN
SET @schema = (SELECT schema_name());
SET @sql = N'SELECT ParameterPK FROM ['+@schema+'].[Parameters] WHERE Parameter = '''+@Param+''' AND ParameterType = 3';
EXEC sp_executesql
@query = @sql,
@params = N'@PPK INT OUTPUT',
@PPK = @PPK OUTPUT;
SET @i = @PPK;
SET @sql = 'INSERT INTO [' + @schema + '].[PlantToParameter] (PlantPK,ParameterPK,Value,Comment) VALUES (@TablePK,@ID,@Val,@Comm';
EXEC sp_executesql
@query = @sql,
@params = N'@TablePK INT, @ID INT, @Val VarChar(50), @Comm VarChar(255)',
@TablePK = @TPK, @ID = @i, @Val = @Value, @Comm = @Comments;
END
IF @ParameterType=4
BEGIN
SET @schema = (SELECT schema_name());
SET @sql = N'SELECT ParameterPK FROM ['+@schema+'].[Parameters] WHERE Parameter = '''+@Param+''' AND ParameterType = 4';
EXEC sp_executesql
@query = @sql,
@params = N'@PPK INT OUTPUT',
@PPK = @PPK OUTPUT;
SET @i = @PPK;
SET @sql = 'INSERT INTO [' + @schema + '].[SoilToParameter] (SoilPK,ParameterPK,Value,Comment) VALUES (@TablePK,@ID,@Val,@Comm)';
EXEC sp_executesql
@query = @sql,
@params = N'@TablePK INT, @ID INT, @Val VarChar(50), @Comm VarChar(255)',
@TablePK = @TPK, @ID = @i, @Val = @Value, @Comm = @Comments;
END
IF @ParameterType=5
BEGIN
SET @schema = (SELECT schema_name());
SET @sql = N'SELECT ParameterPK FROM ['+@schema+'].[Parameters] WHERE Parameter = '''+@Param+''' AND ParameterType = 5';
EXEC sp_executesql
@query = @sql,
@params = N'@PPK INT OUTPUT',
@PPK = @PPK OUTPUT;
SET @i = @PPK;
SET @sql = 'INSERT INTO [' + @schema + '].[WaterToParameter] (WaterPK,ParameterPK,Value,Comment) VALUES (@TablePK,@ID,@Val,@Comm)';
EXEC sp_executesql
@query = @sql,
@params = N'@TablePK INT, @ID INT, @Val VarChar(50), @Comm VarChar(255)',
@TablePK = @TPK, @ID = @i, @Val = @Value, @Comm = @Comments;
END
IF @ParameterType=6
BEGIN
SET @schema = (SELECT schema_name());
SET @sql = N'SELECT ParameterPK FROM ['+@schema+'].[Parameters] WHERE Parameter = '''+@Param+''' AND ParameterType = 6';
EXEC sp_executesql
@query = @sql,
@params = N'@PPK INT OUTPUT',
@PPK = @PPK OUTPUT;
SET @i = @PPK;
SET @sql = 'INSERT INTO [' + @schema + '].[AnalyteToParameter] (AnalytePK,ParameterPK,Value,Comment) VALUES (@TablePK,@ID,@Val,@Comm)';
EXEC sp_executesql
@query = @sql,
@params = N'@TablePK INT, @ID INT, @Val VarChar(50), @Comm VarChar(255)',
@TablePK = @TPK, @ID = @i, @Val = @Value, @Comm = @Comments;
END