SQL用作查询,但作为存储过程调用时失败
我有一个SQL,它正在工作:SQL用作查询,但作为存储过程调用时失败,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我有一个SQL,它正在工作: WITH MyTable AS ( SELECT RegistrationID, ID, (ROW_NUMBER() OVER ( ORDER BY RegistrationID )) AS 'RowNumber' FROM tblData_Visit WHERE RegistrationID = @baseid ) SELECT ' ' + CAST(RowNumber AS nvarchar) AS 'Row#'
WITH MyTable AS
(
SELECT RegistrationID, ID,
(ROW_NUMBER() OVER ( ORDER BY RegistrationID )) AS 'RowNumber'
FROM tblData_Visit
WHERE RegistrationID = @baseid
)
SELECT ' ' + CAST(RowNumber AS nvarchar) AS 'Row#'
FROM MyTable
WHERE RegistrationID = @baseid AND ID = @objectid
当我创建存储过程时
CREATE PROC [dbo].[upMeta_VisitIndex]
(
@baseid int,
@objectid int
)
AS
WITH MyTable AS
(
SELECT RegistrationID, ID,
(ROW_NUMBER() OVER ( ORDER BY RegistrationID )) AS 'RowNumber'
FROM tblData_Visit
WHERE RegistrationID = @baseid
)
SELECT ' ' + CAST(RowNumber AS nvarchar) AS 'Row#'
FROM MyTable
WHERE RegistrationID = @baseid AND ID = @objectid
GO
,并使用以下命令调用它:
EXEC upMeta_VisitIndex @baseid @objectid
我最终来到了errorville:
SQL exception data:
SQL error number: 102. SQL state:1. Error class: 15. Message: "Incorrect
syntax near '@objectid'.". Procedure:"".
System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near
'@objectid'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection, Action`1 wrapCloseInAction)...............
鉴于我知道@baseid和@objectid不为null,我认为问题在于我如何调用SP。这里有什么明显的遗漏吗
干杯,
Gav.调用存储过程时,参数之间似乎缺少逗号。试试这个:
EXEC upMeta_VisitIndex @baseid , @objectid
调用存储过程时,EXEC语句中缺少逗号
EXEC upMeta_VisitIndex @baseid, @objectid
@baseid、@objectid
。对于一个缺少的角色,我有一个很长的问题。谢谢格雷格。我们的朋友拉胡尔也回答了这个问题(希望他自己也发现了这个问题),出于怀疑,我想给他一个机会,希望有一天,我也能成为两位数的代表!哈哈哈,祝你好运。谢谢@GavinCreagh和Greg,是的,我发现了错误,但当我发布答案时,页面刷新了,我意识到Greg几分钟前已经回答了。感谢你的好意,我现在终于有足够的声望点可以在这里发表评论了,谢谢!