我有这个应该创建表客户的ant脚本。我看到消息“正在更新数据库......”所以我知道它正在被调用,但是当它遇到sql任务时,没有任何东西被输出,所以我很难理解出了什么问题。 “升级完成”。消息永远不会显示,所以我认为某处有致命的错误。
我将sqljdbc4.jar驱动程序与%ANT_HOME%/ lib中的其他库放在一起,这些驱动程序没有问题。如果我知道哪里出了问题,我至少可以找到一个解决方案,但就目前而言,我会受到任何有类似问题的人的摆布。当然,这是一个我无法发现的明显问题。任何意见都将不胜感激。
该任务的代码如下:
<!-- =================================
target: execute-script
================================= -->
<target name="execute-script">
<echo message="Updating database..." />
<sql print="true" failOnConnectionError="true"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;DatabaseName=database;selectmethod=cursor"
userid="ctsql"
password="ctsqlone">
<transaction>
CREATE TABLE customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date datetime);
</transaction>
</sql>
<echo message="Upgrade complete." />
</target>
答案 0 :(得分:0)
您通常不会在事务中发出DDL语句(create table
等)。你能尝试删除封闭的交易吗?
The 'CREATE TABLE' command is not allowed within a multi-statement transaction in the 'xxxxx' database.
我没有可以使用的SQL Server实例,但预计会有类似的行为。
答案 1 :(得分:0)
我已经回答了我自己的问题。我从我自己的自定义任务中调用了目标,并且捕获了异常,并且构建继续正常,没有显示任何错误消息。我目前还有其他问题,但我想我现在可以开始工作,因为我看到了我得到的错误。
再次道歉。