Sql 是否有方法删除已绑定到存储过程的用户定义表类型?
我有一个用户定义的表类型(UDTT),它已经与一个将其用作输入参数的存储过程绑定。我在UDTT结构中犯了一个错误,但我无法更改UDTT,因此当我尝试删除它时,SSMS抱怨它绑定到存储过程中,因此无法删除它。有没有办法删除我的UDTTSql 是否有方法删除已绑定到存储过程的用户定义表类型?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个用户定义的表类型(UDTT),它已经与一个将其用作输入参数的存储过程绑定。我在UDTT结构中犯了一个错误,但我无法更改UDTT,因此当我尝试删除它时,SSMS抱怨它绑定到存储过程中,因此无法删除它。有没有办法删除我的UDTT 谢谢这是放置时需要的,我通常会为自己设置一个模板脚本,该脚本遵循以下执行: --表生成或类型 if object_id(N'dbo.<tablename>') is null begin <create table chunk> end 如
谢谢这是放置时需要的,我通常会为自己设置一个模板脚本,该脚本遵循以下执行: --表生成或类型
if object_id(N'dbo.<tablename>') is null
begin <create table chunk> end
如果对象_id(N'dbo.')为空
开始结束
--过程下降
--UDTT滴剂
--UDTT补充道
--程序添加
然后,如果您需要更改进程,只需在该脚本上查找它并再次执行该脚本。由于过程中没有保存的数据,这将解决类型忽略以及需要处理的重新编译选项。我发现它使开发和测试更为有利。这里有一个简单的工作。我使用SSM,并选择
SCRIPT AS > CREATE TO > NEW QUERY EDITOR WINDOW.
这将提供一个要创建的脚本。然后我重命名现有的数据类型,而不是删除它。对重新创建脚本进行所需的任何更改,然后执行
然后可以删除重命名的数据类型
这是一个需要解决的问题,使用alter命令会更好,但这样做就可以了。在删除该类型之前,您需要删除所有使用该用户定义类型的过程和其他数据库对象。是的,我想到了这一点,但我想知道还有什么其他技术。。但是感谢problem solvedmarc_的解决方案,您无法删除重命名的数据类型,因为它仍在使用中,您还必须在删除它之前更改存储过程。