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

How to create two tables with same column definition in one script in T-SQL?

我有两个脚本:

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)
)

唯一的区别是 table 名称。

如何用一个替换 2 个列定义?因此,在重命名列或向 table 添加新列的情况下,将来不会出现错误(table 总是必须同样定义)?

在甲骨文中

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

当你更新问题时 sql 服务器将是

SELECT * INTO newtable
FROM oldtable
WHERE condition

在SQL服务器中,如果要新建table具有相同列名和类型的,可以使用:

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

您可能想在执行此操作之前删除 _customer

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

另外:age 是存储到 table 中的一个可怕的值。它每天都在变化。