用户在存储过程中定义 table

User defined table in stored procedure

我正在尝试将数据table 传递给我的程序。

我创建了一个 SQL 服务器用户定义的 table 类型,如下所示:

 CREATE TYPE dbo.DT_SimQuestionWebTemp AS TABLE 
 (
        [id] [bigint] IDENTITY(1,1) NOT NULL,
        [SimId] [bigint] NOT NULL,
        [mobile] [nvarchar](25) NOT NULL,
        [LevelId] [int] NULL,
        [QuestionId] [int] NULL,
        [Question] [nvarchar](500) NULL,
        [Answer1] [nvarchar](100) NULL,
        [Answer2] [nvarchar](100) NULL,
        [Answer3] [nvarchar](100) NULL,
        [Answer4] [nvarchar](100) NULL,
        [Answer5] [nvarchar](100) NULL,
        [Status] [int] NOT NULL
 )

我正在尝试删除 table 以使用不同的架构重新创建 使用以下语法。

drop table DT_SimQuestionWebTemp

但是我得到一个错误:

Cannot drop the table 'DT_SimQuestionWebTemp', because it does not exist or you do not have permission

并且我有权删除 tables,而且我还可以使用存储过程中的 table。但是我无法通过普通查询将其删除或从中删除 select。

知道如何查看 table 并放下它吗?

你需要 drop type 而不是 drop table

 DROP TYPE dbo.DT_SimQuestionWebTemp

您需要的是:

DROP TYPE dbo.DT_SimQuestionWebTemp;