sql - 基于用户定义的类型创建 SQL Server 表

标签 sql sql-server create-table

我已经使用创建了定义的表类型

CREATE TYPE dbo.MyTableType AS TABLE
(
    Name      varchar(10) NOT NULL,
    ValueDate date        NOT NULL,
    TenorSize smallint    NOT NULL,
    TenorUnit char(1)     NOT NULL,
    Rate      float       NOT NULL
    PRIMARY KEY (Name, ValueDate, TenorSize, TenorUnit)
);

我想创建一个这种类型的表。来自 this answer建议尝试一下

CREATE TABLE dbo.MyNewTable AS dbo.MyTableType

在我的 SQL Server Express 2012 中产生以下错误消息:

Incorrect syntax near the keyword 'OF'.

SQL Server Express 不支持此功能吗?如果是这样,我可以通过其他方式创建它,例如使用 DECLARE 吗?

最佳答案

--Create table variable from type.
DECLARE @Table AS dbo.MyTableType

--Create new permanent/physical table by selecting into from the temp table.
SELECT *
INTO dbo.NewTable
FROM @Table
WHERE 1 = 2

--Verify table exists and review structure.
SELECT *
FROM dbo.NewTable

关于sql - 基于用户定义的类型创建 SQL Server 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22390358/

相关文章:

sql - 是否可以直接选择 EXISTS 作为位?

sql - SQL Server中如何去掉 '0'开头和结尾的字符

sql - 不明确的列名错误 : SQL count, join, group by

mysql - 如何在使用 where 子句时仅查找一列中的重复值?

python - 使用 pypyodbc 对列名进行 SQL Server 编码

MySQL 1064 创建链接表时出错(多对多)

mysql - SQL使用递归递增日期

SQL选择startdate是今天的日期

mysql - 在 MySql 中创建一个 id 为 CHV18000002 的列

sql - 无效的标识符错误,但我看不到为什么