Как создать 2 таблицы с одинаковым набором полей в одном MS SQL скрипте

Имеется 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)
)

Хочется заменить 2 определения полей одним, чтобы избежать ошибок при изменении одной из таблиц (набор полей всегда должен быть одинаковым).

Подскажите, пожалуйста, как это можно сделать.


Ответы (2 шт):

Автор решения: binliz

CREATE TABLE _Customers LIKE Customers;

→ Ссылка
Автор решения: koshe

Может такой вариант вам подойдет:

DECLARE @table1 VARCHAR(100)='Customers',@table2 VARCHAR(100)='_Customers';

DECLARE @sql NVARCHAR(MAX)=
    N'CREATE TABLE @table
    (
        Id INT,
        Age INT,
        FirstName NVARCHAR(20),
        LastName NVARCHAR(20),
        Email VARCHAR(30),
        Phone VARCHAR(20)
    )';
DECLARE @sql1 NVARCHAR(MAX)=REPLACE(@sql,'@table',@table1);
DECLARE @sql2 NVARCHAR(MAX)=REPLACE(@sql,'@table',@table2);

EXEC(@sql1);
EXEC(@sql2);
→ Ссылка