dynamic update
USE [DellPII]
GO
/****** Object: StoredProcedure [dbo].[SP_DynamicUpdate] Script Date: 3/29/2022 10:49:24 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[SP_DynamicUpdate]
@TableName sysname,
@ColumnName sysname,
@values int
--@joincolumn nvarchar(50)
AS
BEGIN
--DECLARE @statement NVARCHAR(4000),
--@parameterDefinition NVARCHAR(4000)
----OPEN SYMMETRIC KEY SymKey_test
----DECRYPTION BY CERTIFICATE Certificate_test;
--Declare @TableName1 nvarchar(50), @ColumnName1 nvarchar(50)
--SET @TableName1=@TableName,@ColumnName=@ColumnName
--SET @statement =N'Update @TableName1 SET @ColumnName1 =EncryptByKey (Key_GUID(''SymKey_test''),@ColumnName1)'
----SET @statement =N'Update' +@TableName+ 'SET'+ @ColumnName+'=EncryptByKey (Key_GUID(''SymKey_test''),'+@ColumnName+')'
----from @TableName1 INNER JOIN [vw_DellPII_SRMS_TXNS] as Vw ON @TableName1.@joincolumn1 = Vw.Incident_Number'
--SET @parameterDefinition = '@TableName1 nvarchar(50),@ColumnName1 nvarchar(50)'
----,@joincolumn1 nvarchar(50)'
----CLOSE SYMMETRIC KEY SymKey_test;
--EXECUTE sp_executesql @statement, @parameterDefinition, @TableName1=@TableName, @ColumnName1=@ColumnName
-- DECLARE @SQL NVARCHAR(2000)
-- SET @SQL = 'UPDATE @TableName SET @Columnname=@values'
--EXEC sp_executesql @SQL, N'@TableName nvarchar(50) @ColumnName nvarchar(50) @values int',@TableName = @TableName,@ColumnName = @ColumnName,@values=@values
--declare @col varchar(100);
declare @sql nvarchar(max);
--set @col = 'Reported_Style';
--set @col = @ColumnName;
--set @sql = 'select ' + @col + ' from '+ @TableName;
set @sql = 'Update ' + @TableName + ' set '+ @ColumnName +'=EncryptByKey (Key_GUID(''SymKey_test''),@ColumnName)';
exec sp_executesql @sql,N'@ColumnName sysname' ,@ColumnName = @ColumnName ;
END
GO
------------------------------------------------------------------------------------------------------------------------
USE [DellPII]
GO
/****** Object: StoredProcedure [dbo].[SP_DynamicUpdate1] Script Date: 3/29/2022 10:50:44 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[SP_DynamicUpdate1]
@TableName sysname,
@ColumnName sysname,
@ClientID nvarchar(1),
@SecureID int,
@joincolumn nvarchar(100),
@Isactive int,
@message ntext output,
@count int output
AS
BEGIN
declare @sql nvarchar(max);
declare @Redactvalue nvarchar(10)
set @Redactvalue='''REDACTED'''
declare @settablename nvarchar(50)
set @settablename=@TableName
Begin Try
IF (@SecureID = 1 )
Begin
OPEN SYMMETRIC KEY SymKey_test
DECRYPTION BY CERTIFICATE Certificate_test;
--set @sql = 'Update ' + @TableName + ' set '+ @ColumnName +'=EncryptByKey (Key_GUID(''SymKey_test''),'+@ColumnName+') ,'
-- +' Isencrypt = 1'
--+' from [dbo].[vw_UCAREPII_TXNS] vw inner join dbo.'+@tablename+' as a on vw.incident_number=a.'+@joincolumn+
--' where vw.clientid='+@clientid +' and a.Isencrypt <> 1';
set @sql = 'Update ' + @TableName + ' set '+ @ColumnName +'=EncryptByKey (Key_GUID(''SymKey_test''),'+@ColumnName+') '
+' from [dbo].[vw_UCAREPII_TXNS] vw inner join dbo.'+@tablename+' as a on vw.incident_number=a.'+@joincolumn+
' where vw.clientid='+@clientid +' and a.Isencrypt <> 1';
print(@sql)
End
Else if(@SecureID = 2 )
Begin
OPEN SYMMETRIC KEY SymKey_test
DECRYPTION BY CERTIFICATE Certificate_test;
set @sql = 'Update ' + @TableName + ' set '+ @ColumnName +'=' +@Redactvalue
+'from [dbo].[vw_UCAREPII_TXNS] vw inner join dbo.'+@tablename+' as a on vw.incident_number=a.'+@joincolumn+
' where vw.clientid='+@clientid +' and a.Isencrypt <> 1' ;
print(@sql)
End
Else if(@SecureID = 3 )
Begin
OPEN SYMMETRIC KEY SymKey_test
DECRYPTION BY CERTIFICATE Certificate_test;
set @sql = 'Update ' + @TableName + ' set '+ @ColumnName +'=DecryptByKey('+@ColumnName+')'
+'from [dbo].[vw_UCAREPII_TXNS] vw inner join dbo.'+@tablename+' as a on vw.incident_number=a.'+@joincolumn+
' where vw.clientid='+@clientid;
print(@sql)
End
ELSE
BEGIN
PRINT('')
END
IF(@Isactive =1)
BEGIN
exec sp_executesql @sql,N'@ColumnName sysname' ,@ColumnName = @ColumnName ;
set @message='Operation completed'
END
CLOSE SYMMETRIC KEY SymKey_test;
end TRY
Begin Catch
set @message=error_message()
End catch
END
GO
-----------------------------------------------------------------------------------------------------------------------
USE [DellPII]
GO
/****** Object: StoredProcedure [dbo].[SP_DynamicUpdate2] Script Date: 3/29/2022 10:51:58 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[SP_DynamicUpdate2]
@TableName sysname,
@ColumnName sysname,
@ClientID int,
@SecureID int
AS
BEGIN
declare @sql nvarchar(max);
declare @Redactvalue nvarchar(10)
set @Redactvalue='''REDACTED'''
IF (@SecureID = 1)
Begin
set @sql = 'Update ' + @TableName + ' set '+ @ColumnName +'=dbo.ufn_EncryptString('+@ColumnName+')';
print(@sql)
End
Else if(@SecureID = 2)
Begin
set @sql = 'Update ' + @TableName + ' set '+ @ColumnName +'=' +@Redactvalue;
print(@sql)
End
Else
Begin
set @sql = 'Update ' + @TableName + ' set '+ @ColumnName +'=dbo.ufn_DecryptString('+@ColumnName+')';
print(@sql)
End
exec sp_executesql @sql,N'@ColumnName sysname' ,@ColumnName = @ColumnName ;
END
GO
Comments
Post a Comment