sql - 如何从类型创建临时表?

标签 sql sql-server sql-server-2008

假设我有某种类型:

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

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

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

此外,从此:create table based on a user defined type :

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

最佳答案

Pure.Krome's answer展示如何使用表变量而不是#temp 表。如果您确实想要一个基于已知表类型的#temp 表(无需知道列名称/定义),您可以说:

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

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

当然,填充 #temp 表的其余代码必须知道该结构。那么,声明一个与表类型结构相同的#temp 表的目的到底是什么呢?

关于sql - 如何从类型创建临时表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21127745/

相关文章:

mysql - 如何获取自本月初以来添加的记录数

sql-server - 在 SQL 中使用变量并在 SQL Server Management Studio 中保持格式设置

mysql - 如何在sql中以列方式获取行?

sql-server-2008 - SQL 将外键添加到现有列

sql - 在数据库中存储电子邮件 ID 列表的最佳数据类型是什么?

php - 将数组插入mysql db函数

sql - T-SQL INSERT INTO 使用 LEFT JOIN

sql-server - 树结构中的递归求和

javascript - 为什么经度/纬度加权计算在 JavaScript 中给出与 SQL 不同的结果

sql从分页中获取列表