为什么我的存储过程在从ASP.net调用时会忽略alter constraints?

时间:2012-01-24 16:20:23

标签: asp.net sql stored-procedures constraints

所以我有一个存储过程执行以下操作(修改了数据参数):

ALTER TABLE dbo.ReceiptInfo NOCHECK CONSTRAINT Credits_ReceiptInfo_FK1;
UPDATE ReceiptInfo SET CreditAccount=@CreditAccount WHERE  CreditAccount=@OriginalAccount;
ALTER TABLE dbo.ReceiptInfo CHECK CONSTRAINT Credits_ReceiptInfo_FK1;

这一切都在一个存储过程中,当我从管理工作室执行它时,它运行得很好,但是当从ASP.net调用时跳过了alter约束。我知道它至少执行存储过程,因为我收到一条消息,说更新与约束冲突。

为了记录,我知道这可以通过ON UPDATE CASCADE解决,但是上层管理人员拒绝了该选项。

1 个答案:

答案 0 :(得分:2)

当您使用Management Studio执行存储过程时,这可以在您的帐户下完成,该帐户可能具有管理员权限。

当您从asp.net执行sp时,您可能使用另一个帐户,但不允许这样做。