无法修改用户定义的表类型

Asl*_*fry 5 sql sql-server stored-procedures user-defined-types sql-server-2012

我有一个 SQL User-Defined Table Type。它用于许多存储过程。现在我需要更改该表类型中的一列。我试图删除并重新创建User-Defined Table Type. 但 SQL Server 不允许这样做。它显示以下错误。

Msg 3732, Level 16, State 1, Line 3
Cannot drop type 'dbo.UserDefinedTableType' because it is being referenced by object 'SP_DoSomething'. There may be other objects that reference this type.
Msg 219, Level 16, State 1, Line 3
The type 'dbo.UserDefinedTableType' already exists, or you do not have permission to create it.
Run Code Online (Sandbox Code Playgroud)

如何在User-Defined Table Type不修改所有使用的存储过程的情况下更改User-Defined Table Type

Bog*_*nov 8

SP_DoSomething您在存储过程中有绑定。您要更改的类型将在该存储过程中使用。

您需要保存该过程的脚本。算了吧。更改dbo.UserDefinedTableType并再次创建过程。

这里有一个类似的帖子。检查一些答案可以帮助您。@norlando 的回答似乎很有希望。