Я хочу напечатать SQL-запрос, который используется в хранимой процедуре ниже, со значениями параметров. В настоящее время он печатает запрос SQL без параметра
Подстановка значений при выполнении хранимой процедуры. Он печатает параметры как есть (например AND TP.F_LANGUAGE = @LANGUAGE
)
CREATE PROCEDURE [dbo].[SEARCH]
@LANGUAGE VARCHAR(2),
@SUBFORMAT NVARCHAR(2000),
@ICO NVARCHAR(4000),
AS
SET NOCOUNT ON
DECLARE @sqlQuery AS NVARCHAR(MAX)
DECLARE @pdfQuery AS NVARCHAR(MAX)
DECLARE @htmlQuery AS NVARCHAR(MAX)
DECLARE @param AS NVARCHAR(3000)
DECLARE @paramDefinition AS NVARCHAR(3000)
DECLARE @AllSubformats AS SubformatType
DECLARE @InputSubformats AS SubformatType
INSERT INTO @AllSubformats(Val)
SELECT S.Val
FROM (SELECT IsNull(TLK.f_value, '') As FValue
FROM T_LOOKUP TLK
WHERE TLK.f_parent = 'WEBVIEWER_INT_SUB') TLV
CROSS APPLY dbo.dfnSplit(TLV.FValue, ',') S;
IF (@SUBFORMAT <> '-1')
BEGIN
INSERT INTO @InputSubformats(Val)
SELECT S.Val
FROM dbo.dfnSplit(@SUBFORMAT, ',') S
END;
SET @pdfQuery = 'SELECT TOP 1001 TP.F_PRODUCT AS ID,
TP.F_PRODUCT_NAME AS NAME,
FROM PDF_DETAILS TP '
WHERE TP.F_PRODUCT<>'''''
SET @param = ' AND TP.F_AUTHORIZED IN(1,3) AND EXISTS (SELECT 1 FROM @AllSubformats ASF WHERE ASF.Val = TP.F_SUBFORMAT)'
IF NOT(@LANGUAGE IS NULL OR @LANGUAGE = '')
SET @param = @param + ' AND TP.F_LANGUAGE = @LANGUAGE '
IF NOT(@SUBFORMAT IS NULL OR @SUBFORMAT = '')
SET @param = @param + ' AND EXISTS (SELECT 1 FROM @InputSubformats ISF WHERE ISF.Val = TP.F_SUBFORMAT) '
IF NOT(@ICO IS NULL OR @ICO = '')
SET @param = @param + ' AND (TP.F_ICO_DATA LIKE @ICO) '
SET @ParamDefinition = ' @SUBFORMAT NVARCHAR(2000),
@LANGUAGE VARCHAR(2), @ICO NVARCHAR(4000),@AllSubformats SubformatType READONLY, @InputSubformats SubformatType READONLY '
SET @sqlQuery = @pdfQuery + @param
EXECUTE SP_EXECUTESQL @sqlQuery, @paramDefinition, @SUBFORMAT, @LANGUAGE, @ICO, @AllSubformats, @InputSubformats
Print @sqlQuery
Пожалуйста, помогите. Я хочу отладить и выполнить SQL-запрос.