I have the following stored procedure
CREATE PROCEDURE [dbo].[Insert]
@Service varchar(max),
@TableName varchar(100),
@Query varchar(250),
@Results varchar(max),
@CreatedDate datetime,
@ExpirationDate datetime
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION
DECLARE @SQL NVARCHAR(MAX), @ParmDefinition NVARCHAR(MAX)
DECLARE @q1 VARCHAR(MAX), @rez1 VARCHAR(MAX),
@date1 DATETIME, @date2 DATETIME
DECLARE @tablename VARCHAR(MAX) = @Service + '.' + @TableName
SET @SQL = N'if not EXISTS (select @q from ' + @tablename + ' where Query = @q) insert into ' + @tablename + ' values(@q, @rez, @date1, @date2)'
SET @ParmDefinition = N'@q varchar(max), @rez varchar(max),
@date1 datetime, @date2 datetime'
EXECUTE sp_executeSQL -- Dynamic T-SQL
@SQL,
@ParmDefinition,
@q = @Query,
@rez = @Results,
@date1= @CreatedDate,
@date2 = @ExpirationDate
COMMIT TRANSACTION
END
When I try to execute it, it doesn't insert anything, 0 rows
If I execute the code without the stored procedure, like a single query it inserts
Am I missing something?
@TableNameand@tablenameas 2 different variables works ?