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
我的程序DINAMIC查詢:
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
感謝
瑪麗安
如果你正在使用MySQL請加標籤 「MySQL的」。 – Kamil 2012-02-22 12:53:56
nope,SQL Server 2008 – Zyku 2012-02-22 12:54:51
你引用插入的代碼? – Zyku 2012-02-22 12:58:52