I want to insert value dynamically in Exec call in SQL Server.
DECLARE @TableName NVARCHAR(MAX) = 'tblTestInsert'
DECLARE @SQLString NVARCHAR(MAX)
DECLARE @Id UNIQUEIDENTIFIER = '3781EF06-6EE4-41ED-81C5-9AE7AD4C4356'
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @tableName)
BEGIN
SET @SQLString = 'INSERT INTO ' + @tableName + '(Id, FirstName, LastName, Description) VALUES ('+ CAST(@Id AS UNIQUEIDENTIFIER) + ',"visual","studio","visual studio 2017")';
EXEC sp_executesql @SQLString
END
ELSE
BEGIN
PRINT 'Table is not exists';
END
But it throws the below error:
The data types nvarchar(max) and uniqueidentifier are incompatible in the add operator.
Please help with this query. Thanks in advance!
CAST(@Id AS NVARCHAR(MAX)).