Как создать 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 шт):
Автор решения: 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);