现象:
使用.NetTiers提供的ServiceLayer进行数据库查询时抛出异常。追踪下去,发现是.NetTiers创建了临时表,并且引用了在业务数据库中创建的UDT,但在Tempdb中没有这些引用的UDT,所以出错。
尝试:
直接在Tempdb中创建在业务数据库中创建的那些UDT,但重启数库库后发现Tempdb创建的UDT全部消失,因此确定修改Tempdb不是一个有效的方式。
最终解决方式:在创建数据库时不使用UDT。
在创建数据库的SQL中将UDT替换成目标数据类型。
或在PowerDesign中,使用逻辑模型生成物理模型后,在物理模型中将Domain删除,这样生成的SQL就会只包含原先创建的Domain所指向的数据类型。