有没有办法删除已绑定到存储过程的用户定义表类型?

时间:2014-03-19 05:25:00

标签: sql sql-server tsql

我有一个用户定义的表类型(UDTT),它已经与使用它作为输入参数的存储过程绑定。我在UDTT结构中犯了一个错误,但我不能改变UDTT所以当我试图删除它时,SSMS抱怨它绑定存储过程因此无法删除。有没有删除我的UDTT?

感谢

2 个答案:

答案 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命令会更好,但这可以胜任。