gpt4 book ai didi

java - PowerDesigner 生成的 sql server 脚本

转载 作者:行者123 更新时间:2023-11-30 11:24:25 25 4
gpt4 key购买 nike

我在 PowerDesigner 15.1 上有一个 PDM。我用它为 SQL Server 2008R2 数据库生成了一个脚本。

所以生成的脚本看起来像这样:

if exists (select 1 
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TABLE1') and o.name = CONSTRAINT1')
alter table TABLE1
drop constraint CONSTRAINT1
go

为我拥有的每个表重复这段脚本。

在创建表和定义约束之后。

当我想使用 DataSourceInitializer(由 Spring 提供)和良好的 JDBC 驱动程序执行此脚本时,出现以下错误:

Failed to execute SQL script statement at line 5 of resource class path resource [create_tables_SQL_SERVER.sql]: if exists (select 1

我不知道该怎么办。

最佳答案

将每条语句写在一行中或在每条语句的末尾添加分隔符(默认 ;):

if exists (select 1  from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F') where r.fkeyid = object_id('TABLE1') and o.name = CONSTRAINT1') 
alter table TABLE1 drop constraint CONSTRAINT1

为了完整性,因为代码解释得最好:ResourceDatabasePopulator 中的这段代码完成了魔法:第 171..178 行

    String delimiter = this.separator;
if (delimiter == null) {
delimiter = DEFAULT_STATEMENT_SEPARATOR; // ";"
if (!containsSqlScriptDelimiters(script, delimiter)) {
delimiter = "\n";
}
}
splitSqlScript(script, delimiter, statements);

关于java - PowerDesigner 生成的 sql server 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20679355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com