我正在使用sql Server(我是一个sql Server noob),并尝试更改一个表.我想要CREATE TABLE LIKE来安全地存储数据,而我删除键和约束以及sql Server在原始表格上进行修改时似乎需要的所有其他rigamorole,但是我无法找到与该命令的匹配.
解决方法
你可以做
SELECT * INTO #MyTable_tmp
从MyTable
然后修改MyTable,然后复制你的数据.我看到的其他方法是创建一个新的表,调用Mytable_Tmp(不是临时表),这将是你的新表.
然后复制您的数据进行所需的任何迁移.然后,您将删除原始表,并在Mytable上重命名.
或者您可以获得比较数据库和生成差异脚本或VSTS DB Edition(与开发人员配合)的许多优秀工具之一,您可以从项目文件到DB执行diff脚本.
编辑
当您运行SELECT * INTO #MyTable FROM MyTable时,sql Server将创建一个新的临时表,名为#MyTable,它与select子句中的每个列和数据类型相匹配.在这种情况下,我们选择*,所以它将匹配MyTable.这只会创建它不复制默认值,约束索引或其他任何东西的列.