0
USE GDMDBNS_1720
GO
IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE'
AND ROUTINE_SCHEMA = 'dbo' AND ROUTINE_NAME = 'usp_RmsExecuteValidationRule')
BEGIN
DROP PROCEDURE dbo.usp_RmsExecuteValidationRule
END
GO
Create PROCEDURE [dbo].[usp_RmsExecuteValidationRule]
@nRuleId INT,
@FIPSName VARCHAR(5)
AS
BEGIN
DECLARE @strRuleQuery VARCHAR(MAX)
DECLARE @sqlstat AS NVARCHAR(MAX)
DECLARE @params AS NVARCHAR(MAX)
SET @strRuleQuery = N'SELECT RULE_QUERY from GdmValidationRuleMaster where
RULE_ID = @nRuleId'
SET @sqlstat = @strRuleQuery
SET @params = N'@FIPSName VARCHAR(5)'
EXEC sp_executesql @params,
@query = @sqlstat,
@FIPSName = @FIPSName
END
调试时必须声明标量变量@nRuleId时出错。我已经宣布过了。但总是出现错误。必须声明标量变量@nRuleId
您还没有一个值分配给'@ nRuleId' – Takarii
''sp_executesql的一个希望SQL语句作为第一个参数,则params排第二,你的'@ strRuleQuery' contans的变量'@ nRuleId'which未声明为parmeter并且未分配,但是您声明了分配了“@ FIPSName”的参数,但已分配但不需要 –
您是否检查过给出的任何答案? – gofr1