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

查询内存表

如何解决查询内存表

sql Server允许您创建内存表。但是,您如何将其插入操作呢?

例如,我使用以下代码创建了我的类型:

CREATE TYPE dbo.typeTableDelimetedFileSpec  
       AS TABLE  
          (  
               TemplateId INT NOT NULL,FieldName VARCHAR(50) NOT NUL,FieldPosition SMALLINT NOT NULL INDEX fpos
          )  
          WITH (MEMORY_OPTIMIZED = ON);  

然后,我尝试这样做:

DECLARE @T [dbo].[typeTableDelimetedFileSpec]

SELECT * 
INTO @T 
FROM [dbo].[_DelimetedFileSpec] 
WHERE TemplateId = 1

我知道结构匹配(_DelimetedFileSpec没有索引fpos,但除此之外没有区别)。

我得到: “ @T”附近的语法不正确。

此外,只是为了检查是否没有其他错误,我确认可以正常工作:

SELECT * 
INTO #x 
FROM [dbo].[_DelimetedFileSpec] 
WHERE TemplateId = 1

是否可以像这样直接插入内存表中?

解决方法

我找到了一种有效的方法!

Declare @DeliSpecs [dbo].[typeTableDelimetedFileSpec]
Insert into @DeliSpecs (TemplateId,FieldName,FieldPosition) Select TemplateId,FieldPosition from _DelimetedFileSpec where TemplateId = @Id

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