复制现有表的结构创建新表

6

我正在尝试使用管理工具在SQL Server 2008中通过复制现有表来创建一个新表。现有表中不包含任何数据。我正在使用以下代码,但是收到了“AS附近语法不正确”的错误提示。我不确定这里出了什么问题。我是SQL的新手,希望得到帮助。谢谢。

CREATE TABLE Drop_Centers_Detail
    AS (Select * From Centers_Detail)

问题也适用于使用ODBC的MS Access(并且被接受的答案也解决了这个问题)。 - AlainD
3个回答

8

像这样,但这不会创建索引和约束。

select * into Drop_Centers_Detail
from Centers_Detail
where 1 = 0

支持文档 - INTO 子句: http://msdn.microsoft.com/zh-cn/library/ms188029.aspx - OMG Ponies
请务必阅读@OMG Ponies提供的链接中的“限制和限制”。您将无法从源表中获取计算列、索引、约束或触发器。 - KM.
谢谢你的回答和信息。它起作用了。只是出于好奇,是否有一种方法可以复制现有的表并保留其索引、约束等? - user234872
你需要编写脚本来完成这个任务,或者你可以使用SMO(http://msdn.microsoft.com/en-us/library/ms162169.aspx)。 - SQLMenace
很棒的答案!问题和解决方案也适用于使用ODBC和Microsoft JET驱动程序的MS Access。几个来源声称语法是由OP给出的,所以有点令人困惑... - AlainD

3

在 SQL Server 管理工具中,右键点击您现有的表,选择 Script Table as > Create to > New Query Editor Window。这将为您提供一个更好的起始脚本,您可以将其用作新模式的基础。


0

1) 我建议从您想要复制的表中生成一个创建脚本,然后在目标数据库上运行该脚本。

2) 在另一个 SQL 查询窗口中编写插入语句以导入数据

插入到 Database1.Table1(Field1, Field2) 从 Database2.Table 中选择 Field1、Field2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接