用erwin建好er图以后,再往SQL server中生成的过程中为什么老出错?erwin版本4.0

hayseed 2003-04-21 12:13:23
我先用反向工程将sql server中的northwind数据库导到erwin中,
在用正向工程将其网新建好的test数据库中生成,结果出错:

CREATE TABLE Categories (
CategoryID int IDENTITY,
CategoryName nvarchar(15) NOT NULL,
Description ntext NULL,
Picture image NULL
)
Execution Successful

......

第 1 行: 'Customer and Suppliers by City' 附近有语法错误。
SQL Server 常规错误: 请检查来自 SQL Server 的消息。
Execution Failed!



青大侠们指点!
...全文
198 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hayseed 2003-04-22
  • 打赏
  • 举报
回复
我又发现错误了:这是erwin自动生成的两个tigger:

create trigger tI_ddd on ddd for INSERT as
/* ERwin Builtin Mon Apr 21 23:45:10 2003 */
/* INSERT trigger on ddd */
begin
declare @numrows int,
@nullcnt int,
@validcnt int,
@errno int,
@errmsg varchar(255)

select @numrows = @@rowcount
/* ERwin Builtin Mon Apr 21 23:45:10 2003 */
/* ccc R/3 ddd ON CHILD INSERT SET NULL */
if
/* update(cccID) */
update(cccID)
begin
update ddd
set
/* ddd.cccID = NULL */
ddd.cccID = NULL
from ddd,inserted
where
/* */
and /////报此处有错
not exists (
select * from ccc
where
/* inserted.cccID = ccc.cccID */
inserted.cccID = ccc.cccID
)
end


/* ERwin Builtin Mon Apr 21 23:45:10 2003 */
return
error:
raiserror @errno @errmsg
rollback transaction
end
go

create trigger tU_ddd on ddd for UPDATE as
/* ERwin Builtin Mon Apr 21 23:45:10 2003 */
/* UPDATE trigger on ddd */
begin
declare @numrows int,
@nullcnt int,
@validcnt int,
@insdddID int,
@errno int,
@errmsg varchar(255)

select @numrows = @@rowcount
/* ERwin Builtin Mon Apr 21 23:45:10 2003 */
/* ccc R/3 ddd ON CHILD UPDATE SET NULL */
if
/* update(cccID) */
update(cccID)
begin
update ddd
set
/* ddd.cccID = NULL */
ddd.cccID = NULL
from ddd,inserted
where
/* */
and //////报此处有错
not exists (
select * from ccc
where
/* inserted.cccID = ccc.cccID */
inserted.cccID = ccc.cccID
)
end


/* ERwin Builtin Mon Apr 21 23:45:10 2003 */
return
error:
raiserror @errno @errmsg
rollback transaction
end
go


服务器: 消息 156,级别 15,状态 1,过程 tI_ddd,行 26
在关键字 'and' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,过程 tU_ddd,行 27
在关键字 'and' 附近有语法错误。

以上script拿到分析器里也不能执行。
erwin难道这么不智能?
msdn_lib 2003-04-22
  • 打赏
  • 举报
回复
erwin的trigger在不是你有手工写trigger的时候最好不要打开,schema中的pre-script,和post-script很有用,但是你没有在模型中增加这两种script的时候也不要打开,尽量少用erwin的特殊的功能生成schema
msdn_lib 2003-04-22
  • 打赏
  • 举报
回复
erwin本来就是个弱智,以前用这个吃了大亏的,现在只是在建模的一部分中使用它.
hayseed 2003-04-21
  • 打赏
  • 举报
回复
真奇怪!我将preview产生的script放到sqlserver的分析器中进行创建,一切OK.
这是不是由于erwin本身的问题啊?
hayseed 2003-04-21
  • 打赏
  • 举报
回复
出错代码如下:

create view "Customer and Suppliers by City" AS
SELECT City, CompanyName, ContactName, 'Customers' AS Relationship
FROM Customers
UNION SELECT City, CompanyName, ContactName, 'Suppliers'
FROM Suppliers
--ORDER BY City, CompanyName


第 1 行: 'Customer and Suppliers by City' 附近有语法错误。
SQL Server 常规错误: 请检查来自 SQL Server 的消息。
Execution Failed!
宸瑜 2003-04-21
  • 打赏
  • 举报
回复
可能是语法的问题,可以在企业查询管理器中调试
tjan 2003-04-21
  • 打赏
  • 举报
回复
先生产语法,检查一下,估计是你生成的语法有问题。
msdn_lib 2003-04-21
  • 打赏
  • 举报
回复
erwin这个东西本身问题也不少,有精力可以升级到4.1 sp2试试
msdn_lib 2003-04-21
  • 打赏
  • 举报
回复
正向的时候可能带有erwin 的特别script部分,导致更新失败.
一般正向生成数据库都是把preview产生的script放到sqlserver的分析器中进行创建的
pengdali 2003-04-21
  • 打赏
  • 举报
回复
你把代码拷出来,检查一下,是不是有注释。。

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧