I have a query like :
DECLARE @jsonVariable NVARCHAR(MAX)
SET @jsonVariable =
N'{ "id" : "11","info": { "fname": "John", "surname": "Smith" }, "age": "25" }'
INSERT INTO Employees
SELECT *
FROM OPENJSON(@jsonVariable)
WITH (id int,fname nvarchar(50) '$.info.fname')
How to use a dynamic TableName after INSERT INTO instade of Employees?
I have tried with sp_executesql:
DECLARE @jsonVariable NVARCHAR(MAX)
DECLARE @TABLENAME NVARCHAR(MAX) = 'Students'
DECLARE @SQL NVARCHAR(100)
SET @jsonVariable = N'{ "id" : "11","info": { "fname": "John", "surname": "Smith" }, "age": 25 }'
SET @SQL = 'INSERT INTO '+ @TABLENAME +' SELECT * FROM
OPENJSON(@jsonVariable); WITH (id int ,age nvarchar(50))'
EXEC sp_executesql @SQL
But getting the error : Must declare the scalar variable "@jsonVariable". Is there any way to do it?