如何在T-SQL的一个脚本中创建具有相同列定义的两个表?

问题描述 投票:1回答:2

我有两个脚本:

CREATE TABLE Customers
(
    Id INT,
    Age INT,
    FirstName NVARCHAR(20),
    LastName NVARCHAR(20),
    Email VARCHAR(30),
    Phone VARCHAR(20)
)

CREATE TABLE _Customers
(
    Id INT,
    Age INT,
    FirstName NVARCHAR(20),
    LastName NVARCHAR(20),
    Email VARCHAR(30),
    Phone VARCHAR(20)
)

唯一的区别是表名。

如何用一个替换两个列定义?因此,将来在重命名列或向一个表添加新列的情况下不要出错(表必须始终进行同等定义)?

sql sql-server tsql ddl
2个回答
2
投票

在SQL Server中,如果要创建具有相同列名和类型的新表,则可以使用:

select c.*
into _customer
from customer c
where 1 = 0;

您可能需要先删除_customer

注意:这不会复制约束或触发器,因此它不能替代其他数据库中可用的create table like。但是您的问题似乎与列和类型有关。

也:age是要存储到表中的可怕值。它实际上每天都在变化。


1
投票

在oracle中

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

当您更新问题时,它将是sql server

SELECT * INTO newtable
FROM oldtable
WHERE condition
© www.soinside.com 2019 - 2024. All rights reserved.