Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 是否有方法删除已绑定到存储过程的用户定义表类型?_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 是否有方法删除已绑定到存储过程的用户定义表类型?

Sql 是否有方法删除已绑定到存储过程的用户定义表类型?,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 如

我有一个用户定义的表类型(UDTT),它已经与一个将其用作输入参数的存储过程绑定。我在UDTT结构中犯了一个错误,但我无法更改UDTT,因此当我尝试删除它时,SSMS抱怨它绑定到存储过程中,因此无法删除它。有没有办法删除我的UDTT


谢谢

这是放置时需要的,我通常会为自己设置一个模板脚本,该脚本遵循以下执行:

--表生成或类型

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_的解决方案,您无法删除重命名的数据类型,因为它仍在使用中,您还必须在删除它之前更改存储过程。