0

我有一个关于在 windows sql server 2005 上创建的存储过程的问题。我有 ColdFusion 代码来调用该过程。我第一次尝试时,由于程序没有正确的权限而失败,所以我添加了一个新用户并将其db_owner添加到程序中,然后它可以正常运行。

但后来我注意到数据库中有问题。我的问题是,即使我看到了错误,你认为程序已经开始运行了吗?并且由于权限问题而停止不正确(可能没有必要的参数,无法访问每个表?)?您还认为它也可能导致数据库崩溃吗?


<cftry>
    <cfstoredproc procedure="test" datasource="test" result="proc_results">
        <cfprocparam cfsqltype="cf_sql_varchar" variable ="A" value="#GetToken(form.test_A)#">
        <cfprocparam cfsqltype="cf_sql_varchar" variable ="B" value="#GetToken(form.test_B)#">
    </cfstoredproc>
    <cfcatch type="any">
        Error!
    </cfcatch>
</cftry>

4

2 回答 2

1

尝试转储错误的一些细节:

<cfcatch>
<cfoutput>
    #cfcatch.message#   
    #cfcatch.detail#
</cfoutput>
</cfcatch>

甚至

<cfcatch>
   <cfdump var="#cfcatch#">
<cfcatch>
于 2013-10-10T22:28:36.463 回答
0

存储过程错误通常不会使整个数据库崩溃,除非它正在做一些非常非正统的事情。SQL Server 等数据库旨在防止此类事件发生。

至于存储过程是否开始运行:当你试图在没有正确权限的情况下启动它时,它就不会启动。如果您在添加正确的权限时说它“正常运行”,那么它就开始了。这取决于存储过程的细节,它是否真的做了任何事情或改变了任何事情,或者没有错误地退出并且没有做任何事情。

您需要提供存储过程的代码和数据库结构的相关部分,然后任何人才能确定地说。

于 2013-10-10T22:13:29.197 回答