我正在努力检查数据库中是否存在表。到目前为止,我所做的工作如下:
public boolean isTableExist(String tableName) {
JdbcTemplate jdbc = getJdbcTemplate();
String query =
"IF (OBJECT_ID(?) IS NOT NULL ) "
+ "BEGIN "
+ " PRINT 1 "
+ " RETURN "
+ "END "
+ "ELSE "
+ "BEGIN "
+ " PRINT 0 "
+ " RETURN "
+ "END";
Integer result = jdbc.queryForObject(query, Integer.class, tableName);
return result == 1 ? true : false;
}
输出(错误):
preparedstatementcallback;sql的未分类sqlexception[如果(object\u id(?)不为空)begin print 1 return end else begin
打印0返回结束];sql状态[null];错误代码[0];语句没有返回结果集。;嵌套异常为com.microsoft.sqlserver.jdbc.sqlserverexception:语句未返回结果集。
1条答案
按热度按时间bvk5enib1#
也可以运行如下查询:
如果得到0,表就不存在。
基于jdbctemplate count queryforint和pass multiple parameters answer,在存储查询之后,似乎必须使用类似的方法
更新:在本帖的帮助下,问题已经解决,基于以上信息的最终解决方案是: