Avatar of Russ Suter
Russ Suter

asked on 

Create a stored procedure that can update any column

Here's a simple stored procedure:
CREATE PROCEDURE [foo]
(
	@Id INT,
	@Value VARCHAR(MAX)
)

AS

UPDATE
	[dbo].[Element]
SET
	[Element].[ColumnName] = @Value
WHERE
	[Element].[Id] = @Id

Open in new window

It works just fine for its purpose. However, what do I do if I want ColumnName to be a passed variable? Something that would work more like this:
CREATE PROCEDURE [foo]
(
	@Id INT,
	@Key VARCHAR(MAX),
	@Value VARCHAR(MAX)
)

AS

UPDATE
	[dbo].[Element]
SET
	[Element].[@Key] = @Value
WHERE
	[Element].[Id] = @Id

Open in new window

How do I accomplish that task?
Microsoft SQL ServerMicrosoft SQL Server 2008SQL

Avatar of undefined
Last Comment
Jim Horn

8/22/2022 - Mon