繁体   English   中英

如何在 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)
)

唯一的区别是表名。

如何用一个替换 2 个列定义? 因此,将来在重命名列或向一个表中添加新列时不会出错(表必须始终相同定义)?

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

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

在执行此操作之前,您可能希望删除_customer

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

另外: age是一个可怕的值,可以存储到表中。 它实际上每天都在变化。

在甲骨文中

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

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

SELECT * INTO newtable
FROM oldtable
WHERE condition

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM