是否可以使用表类型创建常规sql server表?

时间:2014-02-07 01:57:21

标签: sql sql-server sql-server-2008-r2

使用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”表, 但那将是不得已的最后选择。

感谢您的时间。

0 个答案:

没有答案