Hi Shaiwal,
No it is not necessary to pass each separately. You can pass it as a single parameter. But it depends on how you are passing from code behind.
Suppose you are passing values like ‘Value1’, ‘Value2’, ‘Value3’, ‘Value4’, ‘Value5’ from code behind then you can pass it as a single parameter.
Refer the below Test Procedure.
CREATE PROCEDURE DynamicInsertQuery
@TableName VARCHAR(50),
@ColumnName VARCHAR(MAX),
@ColumnValues VARCHAR(MAX)
AS
BEGIN
DECLARE @DynamicQuery NVARCHAR(MAX)
SET @DynamicQuery = 'INSERT INTO '+ @TableName +' ('+ @ColumnName +') VALUES ('+ @ColumnValues +')'
EXEC(@DynamicQuery)
END
EXEC DynamicInsertQuery 'CustomersWithOutIdentity' , '[CustomerId],[Name],[Country]' , '1,''Mudassar Khan'',''Belgium'''
--Dynamically passing TableName, ColumnName and ColumnValues to the procedure.
EXEC DynamicInsertQuery 'CustomersWithOutIdentity' , '[CustomerId],[Name],[Country]' , '2,''Maria'',''Austria'''
EXEC DynamicInsertQuery 'CustomersWithOutIdentity' , '[CustomerId],[Name],[Country]' , '3,''Ana Trujillo'',''France'''
EXEC DynamicInsertQuery 'CustomersWithOutIdentity' , '[CustomerId],[Name],[Country]' , '4,''Antonio Moreno'',''Brazil'''
EXEC DynamicInsertQuery 'CustomersWithOutIdentity' , '[CustomerId],[Name],[Country]' , '5,''Thomas Hardy'',''Ireland'''
SELECT [CustomerId],[Name],[Country] FROM [CustomersWithOutIdentity]
OutPut
CustomerId |
Name |
Country |
1 |
Mudassar Khan |
Belgium |
2 |
Maria |
Austria |
3 |
Ana Trujillo |
France |
4 |
Antonio Moreno |
Brazil |
5 |
Thomas Hardy |
Ireland |