【问题标题】:Unable to Execute a (DELETE) Query on SQL Server 2008 R2无法在 SQL Server 2008 R2 上执行 (DELETE) 查询
【发布时间】:2013-07-03 17:00:23
【问题描述】:

我想删除数据库中包含 .jpg 扩展名所在 URL 的所有行!

我正在使用

 try{
 java.sql.Statement mystat=connection.createStatement();
 String delete_jpg="DELETE FROM mytable WHERE mycol LIKE '%.jpg%' ";
 mystat.executeUpdate(delete_jpg);
 }catch(Exception e){
  }

使用 Java JDBC 执行此查询完全没有错误,但也不会删除行!请有人告诉我我做错了什么!!!

示例网址是:

 images/affiliation-logo4.png HTTP/1.1
 images/661.jpg HTTP/1.1
 footerslider/images/blue-left-arrow.png HTTP/1.1
 footerslider/images/blue-right-arrow.png HTTP/1.1
 media/contentHeader/32.jpg HTTP/1.1     //I want to delete this type of rows
 index.php?option=com_content&task=view&id=543 HTTP/1.1
 images/favic.ico HTTP/1.1
 src/ HTTP/1.0
 uiit/faculty.php?dept_id=31 HTTP/1.1
 uims/faculty.php?dept_id=32 HTTP/1.1
 media/profile/dhS1t8X.jpg HTTP/1.1     //I want to delete this type of rows
 media/profile/SSbkpgG.jpg HTTP/1.1     //I want to delete this type of rows

【问题讨论】:

  • 事务是否可能回滚?向我们展示您是如何执行查询的。
  • 删除后是否提交?
  • 向我们展示 Java 代码
  • 更新了问题;添加代码
  • 你怎么知道没有错误?您似乎正在接受异常。将 e.printStackTrace() 放入 catch 块并重新运行它,如果有异常则发布异常

标签: java sql-server-2008 delete-row sql-delete


【解决方案1】:

从您的示例网址中,我看到模式是:

 media/profile/dhS1t8X.jpg HTTP/1.1     //I want to delete this type of rows

问题是你做得正确,但模式应该是这样的:

try{
 java.sql.Statement mystat=connection.createStatement();
 String delete_jpg="DELETE FROM mytable WHERE mycol LIKE '%.jpg %' ";  //HERE YOU HAVE TO ADD A WHITE SPACE AFTER THE .jpg as you can also seen in your sample URL!
 mystat.executeUpdate(delete_jpg);
}catch(Exception e){
}

去做吧,一定会帮到你的!

【讨论】:

  • 是的,它就像一个魅力谢谢,现在它适用于我的整个数据库和其他查询也谢谢
【解决方案2】:

您可以尝试对您的陈述进行这种修改:

String delete_jpg="DELETE FROM mytable WHERE mycol LIKE '%' + .jpg + '%' ";

【讨论】:

  • 严重:空 com.microsoft.sqlserver.jdbc.SQLServerException:无法绑定多部分标识符“.jpg”。在 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) 在 com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515) 在 com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement (SQLServerStatement.java:792) 在 com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689) ...... ..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-25
  • 1970-01-01
相关资源
最近更新 更多