我有多个ms sql server数据库x1,x2,x3,... xn,实际上是所有相同的模式类型和一个不同的数据库y并保存管理数据。
我正在使用jdbc预处理语句,有时需要在一个程序中从多个x数据库执行相同的预处理语句。
如果预准备语句的SQL未指示数据库:
准备好的语句是否与服务器关联,如果执行是在根据上下文选择的数据库上执行,例如遵循USE声明。
OR是否永远与连接URL中的默认数据库相关联?如果是这样,并且我仍然想使用preprepared语句,我必须为每个单独的数据库创建一个准备好的语句,即使模式和语句本质上是相同的。
答案 0 :(得分:1)
我非常肯定(但不是100%肯定)预准备语句绑定到特定数据库。鉴于查询计划必须评估每个数据库中不同的索引和表统计信息。
由于这似乎是一个内部系统,并且SQL注入可能不是问题 - 我会使用直接执行或stmt.executeQuery(查询)。