发出调用存储过程

时间:2013-10-10 21:52:10

标签: database sql-server-2005 stored-procedures coldfusion

我有一个关于在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>

2 个答案:

答案 0 :(得分:1)

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

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

甚至

<cfcatch>
   <cfdump var="#cfcatch#">
<cfcatch>

答案 1 :(得分:0)

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

关于存储过程是否开始运行:当您尝试在没有正确权限的情况下启动它时,它将无法启动。如果您在添加正确权限时说它“正常运行”,则会启动它。这将取决于存储过程的细节,无论它是否实际做了什么或改变了什么,或者没有错误地退出并且没有做任何事情。

在任何人可以肯定地说出来之前,您需要提供存储过程的代码和数据库结构的相关部分。