我正在使用 SQL Server(我是 SQL Server 菜鸟)并尝试更改表。我想CREATE TABLE LIKE
在删除键和约束以及 SQL Server 在更改原始表时似乎需要的所有其他 rigamorole 时安全地存储数据,但我无法找到与该命令匹配的...
Ichorus
问问题
42688 次
2 回答
44
您想重新创建相同的结构吗?
这个怎么样
SELECT *
into test
FROM myRealTable
where 0=1
不会向新表中插入任何数据
于 2009-03-05T20:05:35.417 回答
20
你可以做
SELECT * INTO #MyTable_tmp FROM MyTable
然后修改您的 MyTable,并将您的数据复制回去。我见过的其他方法是创建一个名为 Mytable_Tmp(不是临时表)的新表,这将是您的新表。
然后复制您的数据进行所需的任何迁移。然后您将删除原始表并在 Mytable 上进行重命名。
或者,您可以获得比较数据库并生成差异脚本或 VSTS DB 版(开发人员随附)的众多出色工具之一,您可以从项目文件到数据库执行差异脚本。
编辑
当您运行时SELECT * INTO #MyTable FROM MyTable
,SQL Server 会创建一个名为 #MyTable 的新临时表,该表与您的 select 子句中的每个列和数据类型相匹配。在这种情况下,我们选择 *,因此它将匹配 MyTable。这只会创建不复制默认值、约束索引或其他任何内容的列。
于 2009-03-05T18:58:16.000 回答