DECLARE @a NVARCHAR(10) ,
@b NVARCHAR(100)
SET @a = 'value'
SET @b = ' PRINT @a '
EXEC sp_executesql @b
я хотел бы в итоге: «значение»
, но я получаю сообщение об ошибке Необходимо объявить скалярную переменную «@a»Использовать переменные из процедуры в динамическом запросе
мне нужно войти в SQL параметры которых был вызван SP
мне нужно это, потому что внутри SP я создать динамичную запрос из INFORMATION_SCHEMA.PARAMETERS
моя процедура:
ALTER PROCEDURE marianTest
@a INT,
@b NVARCHAR(121)
AS
BEGIN
DECLARE @query NVARCHAR(max)
SET @query = dbo.ufn_admin_Ex(cast(OBJECT_NAME(@@PROCID) AS nvarchar(100)))
EXECUTE sp_executesql @query
где @query как это:
declare @callSP nvarchar(max) =
'DECLARE @a int = ' + CASE WHEN @a IS NULL THEN 'NULL' ELSE convert(nvarchar(15),@a) END + CHAR(13)
+', @b nvarchar(121) = ' + CASE WHEN @b IS NULL THEN 'NULL' ELSE + '''' + @b+ '''' END + CHAR(13)
EXECUTE [dbo].[usp_admin_traceError] @callSp
благодарит
Marian
Если вы используете MySQL, пожалуйста, добавьте тег "MySql". – Kamil
nope, SQL Server 2008 – Zyku
Вы ссылаетесь на вставленный код? – Zyku