小编典典

如何根据类型创建临时表?

sql

假设我有某种类型:

CREATE TYPE usr.NameList AS TABLE ([name] VARCHAR(MAX) NOT NULL);

现在我想基于这种类型创建一个临时表,我该怎么做?

CREATE TABLE #superBrand (usr.NameList) -- doesn't work

同样,从此:基于用户定义的类型创建表

CREATE TABLE #superBrand OF usr.NameList -- doesn't work

阅读 195

收藏
2021-04-07

共1个答案

小编典典

[\Pure.Krome的答案)显示了如何使用表变量而不是#temp表。如果您确实想要基于已知表类型的#temp表(而不必知道列名/定义),则可以说:

DECLARE @d usr.NameList;
SELECT * INTO #superBrand FROM @d;

现在,#superBrand应与表类型的表结构匹配,减去约束(以及从SQL Server 2014开始的边际有用的二级索引)。

当然,随后填充#temp表的其余代码将必须了解结构。那么,声明与表类型具有相同结构的#temp表的目的到底是什么?

2021-04-07