我正在使用SQL Server(我是SQL Server菜鸟)并尝试更改表。我想通过CREATE TABLE LIKE
安全地存储数据,同时删除键和约束以及在原始表上进行更改时SQL Server似乎需要的所有其他rigamorole,但是我找不到与该命令的匹配项...
最佳答案
你可以做
SELECT * INTO #MyTable_tmp FROM MyTable
然后修改MyTable,然后将数据复制回去。我看到的其他方法是创建一个名为Mytable_Tmp(不是临时表)的新表,它将成为您的新表。然后复制数据进行所需的任何迁移。然后,将删除原始表并在Mytable上重命名。
或者,您可以获得比较数据库并生成差异脚本或VSTS DB Edition(与开发人员一起提供)的众多出色工具之一,并且可以将差异脚本从项目文件转换为DB。
编辑
运行
SELECT * INTO #MyTable FROM MyTable
时,SQL Server将创建一个名为#MyTable的新临时表,该临时表与select子句中的每个列和数据类型都匹配。在这种情况下,我们选择*,使其与MyTable匹配。这只会创建不复制默认值,约束索引或其他任何内容的列。关于sql-server - 在SQL Server中等效于 'CREATE TABLE … LIKE …",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/616104/