正在查询内存表



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没有索引fpo,但除此之外没有差异(。

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

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

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

有可能像这样直接插入内存表吗?

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

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

最新更新