如何在 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 中的一个可怕的值。它每天都在变化。
我有两个脚本:
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 中的一个可怕的值。它每天都在变化。