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
    );

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...