我创建了以下存储过程:
所以我设置了一个变量
CREATE PROCEDURE procedure_name
Create Procedure sp_ADD_USER_EXTRANET_CLIENT_INDEX_PHY
(
@ParLngId int output
)
as
Begin
SET @ParLngId = (Select top 1 ParLngId from T_Param where ParStrNom = 'Extranet Client')
if(@ParLngId = 0)
begin
Insert Into T_Param values ('PHY', 'Extranet Client', Null, Null, 'T', 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL)
SET @ParLngId = @@IDENTITY
End
Return @ParLngId
End
所以我设置了一个变量
@ParLngId
,我检查表中是否有这样的数据,如果有,我返回该值,如果没有,则插入一条并返回包含插入行Id的变量...但现在它显示了一个SqlException:
子查询返回了更多的值。当子查询跟随=,!=,<,<=,>,> =或用作表达式时,不允许这样做。
有人有解决方案吗?
CREATE PROCEDURE
:在为存储过程命名时,避免使用 sp_ 前缀。该前缀被 SQL Server 用于指定系统存储过程。如果存在同名的系统存储过程,则使用该前缀可能会导致应用程序代码出现故障。 - Damien_The_Unbeliever