在不导入行数据的情况下克隆 table

Cloning a table without importing row data

我需要临时table (TAB_PROV)。此 table 将起源于主 table (TAB_MAIN)。我需要主要 table 中的所有内容,除了数据(行)。

我搜索了一些示例,none 对我有用

CREATE TABLE TAB_PROV LIKE TAB_MAIN

CREATE TABLE TAB_PROV AS TAB_MAIN

在 SQL Server Management Studio 中,您可以右键单击 table 和 select

Script Table as -> Create To -> New Query Editor Window

这将为您创建 table 创建脚本。

您也可以尝试下面的代码,但它会复制所有内容。

SELECT * 
INTO NewTable 
FROM OldTable

TRUNCATE TABLE NewTable

你可以简单地做:

SELECT *
FROM TAB_MAIN
INTO TAB_PROV 
WHERE 1 = 2

由于 WHERE 条件永远不会为真,因此不会复制任何数据 - 但会复制 table 结构 - TAB_PROV已创建并具有与 TAB_MAIN 相同的列。这 NOT 但是会复制任何约束(检查或默认约束)或触发 - 它 重新创建列(及其数据类型)。

如果您想要 真实 并完整“复制”您的 table,那么您应该使用 SSMS 中的“脚本 Table”功能来获取 TAB_MAIN 所需的 SQL,然后调整它以从中创建 TAB_PROV