我有一个用户定义的表类型(UDTT),它已经与使用它作为输入参数的存储过程绑定。我在UDTT结构中犯了一个错误,但我不能改变UDTT所以当我试图删除它时,SSMS抱怨它绑定存储过程因此无法删除。有没有删除我的UDTT?
感谢
答案 0 :(得分:2)
在drop上是必需的,我通常做的是为自己设置一个跟随此执行的模板脚本:
- 表格构建或类型
if object_id(N'dbo.<tablename>') is null
begin <create table chunk> end
- Proc Drops
- UDTT Drops
- UDTT添加
- Proc Adds
然后,如果你需要改变一个proc,你只需在该脚本上找到它并再次执行脚本。由于过程中没有保存的数据,因此这种求解类型会忽略以及需要处理的重新编译选项。我发现它可以使开发和测试更有利。
答案 1 :(得分:0)
这里有一个简单的工作。我使用SSMS,然后选择
@Component
@Profile({ Constants.SPRING_PROFILE_PRODUCTION, Constants.SPRING_PROFILE_TEST })
public class TheClass{...}
这给出了一个要创建的脚本。然后我重命名现有的数据类型而不是删除它。对重新创建的脚本进行必要的更改,然后执行。
然后,您可以删除重命名的数据类型。
它的一些解决方法,并且alter命令会更好,但这可以胜任。