Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server中复制表_Sql_Sql Server_Tsql - Fatal编程技术网

在SQL Server中复制表

在SQL Server中复制表,sql,sql-server,tsql,Sql,Sql Server,Tsql,是否可以将具有定义、约束和标识的表复制到新表中?不,不可以,您必须先编写脚本,然后更改名称 你可以这样做 select * into NewTable FROM OldTable WHERE 1 =2 --if you only want the table without data 但它不会复制任何约束 根据表生成创建脚本 修改脚本以创建不同的表名 从源表中选择所有内容执行插入 这不是最优雅的解决方案,但你可以使用微软免费提供的工具。 它创建一个表定义的SQL脚本,包括数据、索引和其他内容。

是否可以将具有定义、约束和标识的表复制到新表中?

不,不可以,您必须先编写脚本,然后更改名称

你可以这样做

select * into NewTable
FROM OldTable
WHERE 1 =2 --if you only want the table without data
但它不会复制任何约束

根据表生成创建脚本 修改脚本以创建不同的表名 从源表中选择所有内容执行插入
这不是最优雅的解决方案,但你可以使用微软免费提供的工具。 它创建一个表定义的SQL脚本,包括数据、索引和其他内容。但您必须手动更改脚本以更改表名…

另一种可能性: 我刚刚才发现。 此脚本是为所有表的约束编写脚本的示例,但您可以轻松地将其更改为仅选择表的约束

因此,您可以执行以下操作:

使用数据创建新表,如SQLMENAGE SAED select*从OldTable转换为NewTable 通过更改此SQL脚本添加约束、索引和内容
因此,我们不能不事先创建新的表定义?这将创建表定义,但它不会有任何约束、键等