使用2008 R2,我创建了一个用户定义的表格类型,如下所示。
IF TYPE_ID('ttypRPStats') IS NOT NULL
DROP TYPE dbo.ttypRPStats
CREATE TYPE dbo.ttypRPStats AS TABLE
(
RowNum INT NOT NULL IDENTITY (1,1) PRIMARY KEY CLUSTERED
, RP_Name VARCHAR(100)
, RPQualified_Name VARCHAR(200)
, RP_Type VARCHAR(100)
, RPCreatedDate DATETIME
, RPLast_ModifiedDate DATETIME
, RPActive BIT NOT NULL DEFAULT 0
)
GO
表变量的声明和使用工作正常:
DECLARE @RPStats dbo.ttypRPStats
INSERT INTO @RPStats
(
RP_Name
, RPQualified_Name
, RP_Type
, RPCreatedDate
, RPLast_ModifiedDate
, RPActive
)
VALUES
(
'Name' -- RP_Name
, 'Longer.Name' -- RPQualified_Name
, 'TheirType' -- RP_Type
, '2004/07/04' -- RPCreatedDate
, '2013/05/01' -- RPLast_ModifiedDate
, 1 -- RPActive
)
select * from @RPStats
但我希望能够做的是使用表格类型创建一个“真正的”表。我已经阅读并重新阅读了CREATE TABLE命令定义,并没有检测到这样做的方法;并进行了大量的研究,但尚未偶然发现有效的语法。例如。以下结构不起作用:
CREATE TABLE RPStats AS ttypRPStats
CREATE TABLE RPStats (ttypRPStats)
是否有使用表类型创建表的有效语法?
我知道我可以先将它全部发送到表变量,然后选择SELECT ... INTO“real”表, 但那将是不得已的最后选择。
感谢您的时间。