在 SQL Server 中删除/重新创建类型

Joh*_*ohn 5 sql t-sql sql-server sql-server-2008 sql-server-2012

IF OBJECT_ID('[dbo].[Order]') IS NOT NULL
    DROP TYPE [dbo].[Order]
GO

CREATE TYPE [dbo].[Order] AS TABLE 
(
    [Id] INT NULL,
    [Order] INT NULL
);
Run Code Online (Sandbox Code Playgroud)

此代码不会删除表。我收到此错误:

该类型'dbo.Order'已存在,或者您没有创建它的权限。

如何在 SQL Server 中删除/重新创建类型?

小智 6

您的任何存储过程都可能使用此表类型。这就是为什么它不允许你掉线。您可能会收到以下错误。

消息 3732,级别 16,状态 1,第 4 行无法删除类型“tabletype”,因为它正被对象“存储过程名称”引用。可能还有其他对象引用此类型。

消息 219,级别 16,状态 1,第 3 行 类型“tabletype”已存在,或者您没有创建它的权限。

检查存储过程或函数名称。只需评论一下用法,然后删除引用。您可以删除并重新创建表类型。之后取消注释存储过程/函数中的引用用法。

这肯定会奏效!!