微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/mssql/79931.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐