您好我有以下SP,但是当我使用LINQ to SQL时,它会生成2个多个记录集。为了我的理智,我试图弄清楚存储过程中的内容是什么,并且只想返回一个记录集...可以有任何帮助吗?
ALTER PROCEDURE [dbo].[CheckToken]
@LoginId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @failures INT
SET @failures = (SELECT COUNT(loginid) FROM auditerrorcode WHERE
errorid = 1012 AND loginid = @loginid
AND datecreated > DATEADD(hh, -1, getdate())
)
IF @failures > 10 UPDATE [login] SET [IsDisabled]=1 WHERE loginid = @loginid
SELECT * FROM [Login] WHERE LoginId = @LoginId
END
答案 0 :(得分:0)
单独执行您的过程并排除您没有获得两行,因为您传入的ID返回了两行。在SQL Managment Studio中执行此操作
EXEC dbo.CheckToken 999
确保使用从.NET代码调用的相同@LoginID。
答案 1 :(得分:0)
抱歉伙计......
我再次查看生成的DBML文件,并删除了定义了多个结果集的CheckToken方法。然后我重新生成了,现在我得到了我的预期,一个记录集
看起来我对SP所做的改进是有效的。