简体   繁体   English

存储过程中的用户定义表

[英]User defined table in stored procedure

I am trying to pass a datatable to my procedure. 我正在尝试将数据表传递给我的程序。

I have created a SQL Server user-defined table type as below: 我创建了一个SQL Server用户定义的表类型,如下所示:

 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
 )

I am trying to drop the table to create again with different schema using the below syntax. 我正在尝试删除表,以使用以下语法使用不同的架构再次创建。

drop table DT_SimQuestionWebTemp

however I am getting an error: 但是我得到一个错误:

Cannot drop the table 'DT_SimQuestionWebTemp', because it does not exist or you do not have permission 无法删除表“ DT_SimQuestionWebTemp”,因为该表不存在或您没有权限

and I have permission to drop tables and also I am able to use the table from the stored procedure. 并且我有权删除表,也可以使用存储过程中的表。 However I am not able to drop it or select from it through a normal query. 但是,我无法删除它或通过常规查询从中选择它。

Any idea how to see the table and drop it? 知道如何查看表格并将其删除吗?

您需要drop type而不是drop table

 DROP TYPE dbo.DT_SimQuestionWebTemp

您需要的是:

DROP TYPE dbo.DT_SimQuestionWebTemp;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM