从另一个表的行及其属性创建表

时间:2013-01-24 13:08:16

标签: sql sql-server

我有一个名为Table1

的表格

Column Name     Data type    Max length  Precision   Scale   is_nullable   Primary Key
    Price        float          8         53          0       1             0
    Name         varchar      180          0          0       1             0
    Id_no        int            4         10          0       1             1
    DOB          date           3         10          0       1             0

我需要创建另一个名为Table2的表,其中表1的列名行(以及数据类型,最大长度等属性)应该是另一个表的列,例如

Table 2
Price   Name    Id_No  DOB

(请注意,create table query也应考虑属性)

3 个答案:

答案 0 :(得分:0)

您可以使用select into创建表格的副本:

select  *
into    NewTable
from    OldTable

答案 1 :(得分:0)

create table table2
as
select * form table1;

答案 2 :(得分:0)

您可以动态创建SQL语句,然后运行该命令。

DECLARE @dsql nvarchar(max) = N''

SELECT @dsql += QUOTENAME([Column Name]) + ' ' + 
       [Data type] + 
        + CASE WHEN [Data type] = 'varchar' 
               THEN '(' + CAST([Max length] AS nvarchar(4)) + ')' ELSE '' END + ','        
FROM Table1

SELECT @dsql = 'CREATE TABLE Table2 (' + LEFT(@dsql, LEN(@dsql) - 1) + ')'
EXEC sp_executesql @dsql