1

我声明了一个表类型,它在许多存储过程中被引用。

现在我想向该表类型添加一列。

由于 sql server 不允许更改表类型。我需要删除并重新创建它。但是在删除它时会抛出错误,说它在其他存储过程中被引用。因此不能下降。

如何在不删除存储过程的情况下继续?

4

1 回答 1

0

编写所有使用表类型的 SP。

select o.name, o.type, m.definition
from sys.sql_modules m
join sys.objects o on o.object_id=m.object_id
where m.definition like '%tbl_type%'

您最好不要使用显示的定义,而只使用名称并使用对象浏览器中的 SSMS 编写脚本。

  • 放下它们。
  • 删除表类型。
  • 创建它,包括新列。
  • 重新创建存储过程。
  • 测试。
于 2012-10-14T07:43:27.550 回答