sql-server – T-SQL DROP TYPE IF EXISTS

前端之家收集整理的这篇文章主要介绍了sql-server – T-SQL DROP TYPE IF EXISTS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > How to check existence of user-define table type in SQL Server 2008?5个
我目前正在使用sql Server 2014中的T-sql脚本.

我需要删除用户定义的表类型,但只有它存在,并在删除/删除类型后再次创建它.

我在网上做了一些研究并找到了一个解决方案,遗憾的是,它根本不起作用.

我当前的脚本如下所示:

IF OBJECT_ID('MySchema.tProjectType','U') IS NOT NULL
        DROP TYPE [MySchema].[tProjectType];

CREATE TYPE [MySchema].[tProjectType] AS TABLE
    (
        Id INT,IsPrivate BIT,IsPublic BIT
    );

我的错误信息:

The type ‘MySchema.tProjectType’ already exists,or you do not have permission to create it.

sql Server 2014中删除之前,您是否知道如何成功检查用户定义的表类型是否存在?

谢谢!

解决方法

请尝试这个,使用type_id而不是object_id
IF type_id('[MySchema].[tProjectType]') IS NOT NULL
        DROP TYPE [MySchema].[tProjectType];


CREATE TYPE [MySchema].[tProjectType] AS TABLE
    (
        Id INT,IsPublic BIT
    );

猜你在找的MsSQL相关文章