是否select * into B from A
也将 A 的约束复制到 B 上?如果没有,那么我该如何复制约束?
问问题
8843 次
3 回答
2
您不能直接将约束从一个表复制到另一个表,首先您应该复制带有索引和约束的表结构,这样做
请按照以下说明进行操作:
在 SSMS 中右键单击表,脚本创建。
将生成的脚本中的名称更改为 NewTable
insert into NewTable select * from OldTable -- 请注意,如果 Old 足够大,它可能会很慢。
于 2014-07-30T17:10:09.193 回答
1
不,不在 SQL-Server 中。您需要手动指定新表的约束和索引。如果您使用的是 SSMS,则使用该Script As... Create To
功能可以获得一个示例脚本来创建具有相同约束和结构的新表。
源表中定义的索引、约束和触发器不会转移到新表中,也不能在 SELECT...INTO 语句中指定。如果需要这些对象,您可以在执行 SELECT...INTO 语句后创建它们。
于 2014-07-30T17:09:20.450 回答
0
它不会复制约束。如果您希望使用相同的约束设置两个表,则必须通过运行 create table/constraint 语句手动完成。不过,您可以让 sql server 从现有表中创建 sql 语句。使用 Sql Server Studio,在对象资源管理器中右键单击表并选择 Script As 并选择所需的选项,然后根据需要更改表名称。
于 2014-07-30T17:10:52.823 回答