我有一个关于在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>
答案 0 :(得分:1)
尝试转出错误的一些细节:
<cfcatch>
<cfoutput>
#cfcatch.message#
#cfcatch.detail#
</cfoutput>
</cfcatch>
甚至
<cfcatch>
<cfdump var="#cfcatch#">
<cfcatch>
答案 1 :(得分:0)
存储过程错误通常不会导致整个数据库崩溃,除非它正在做一些非常不正统的事情。 SQL Server等数据库旨在防止此类事件发生。
关于存储过程是否开始运行:当您尝试在没有正确权限的情况下启动它时,它将无法启动。如果您在添加正确权限时说它“正常运行”,则会启动它。这将取决于存储过程的细节,无论它是否实际做了什么或改变了什么,或者没有错误地退出并且没有做任何事情。
在任何人可以肯定地说出来之前,您需要提供存储过程的代码和数据库结构的相关部分。