加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – T-SQL DROP TYPE IF EXISTS

发布时间:2021-03-18 11:46:43 所属栏目:MsSql教程 来源:网络整理
导读:参见英文答案 How to check existence of user-define table type in SQL Server 2008?5个 我目前正在使用SQL Server 2014中的T-SQL脚本. 我需要删除用户定义的表类型,但只有它存在,并在删除/删除类型后再次创建它. 我在网上做了一些研究并找到了一个解决

参见英文答案 > 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
    );

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读