2015-09-16 19 views
1

在我的ColdFusion 11网站(与SQL Server 2008 R2),以下CFQUERY抛出上述错误:[Macromedia公司] [SQLServer的JDBC驱动程序] [SQLServer的]无效的对象名称列名“

<cfquery name="deleteGrantModificationItems" datasource="#dsource#"> 
    DELETE col_key FROM myTable 
    WHERE col_key = <cfqueryPARAM value = "#appkey#" CFSQLType = "CF_SQL_VARCHAR"> 
</cfquery> 

当我运行SQL事件探查器捕获查询,我得到:

Declare @p1 int 
Set @p1=NULL 
exec sp_prepexec @p1 output,N'@P1 varchar(8000)',N'DELETE col_key FROM myTable 
WHERE col_key = @P1 ','000000001644' 
select @p1 

当我运行在查询分析器上面,我得到以下错误:

Msg 208, Level 16, State 1, Line 1 
Invalid object name 'col_key'. 
Msg 8180, Level 16, State 1, Procedure sp_prepexec, Line 1 
Statement(s) could not be prepared. 

我一直无法找到错误的原因。

回答

6

你有一个语法错误,因为你应该使用DELETE FROM table_name ...像:

<cfquery name="deleteGrantModificationItems" datasource="#dsource#"> 
    DELETE FROM myTable 
    WHERE col_key = <cfqueryPARAM value = "#appkey#" CFSQLType = "CF_SQL_VARCHAR"> 
</cfquery> 

DELETE doc

[ WITH [ ,...n ] ] DELETE

[ TOP (expression) [ PERCENT ] ]

[ FROM ]

+0

感谢您指出的错误。你的快速反应是一个很大的节省时间。 – nam

相关问题