【问题标题】:create table from another table in different database in sql server 2005在 sql server 2005 中从不同数据库中的另一个表创建表
【发布时间】:2011-02-28 08:02:51
【问题描述】:

我有一个带有表“A”的数据库“temp”。我创建了新数据库“temp2”。 我想将表 "A" 从 "temp" 复制到 "temp2" 的新表中。我试过这个语句,但它说我的语法不正确,下面是语句:

CREATE TABLE B IN 'temp2'
  AS (SELECT * FROM A IN 'temp');

这是错误:

消息 156,级别 15,状态 1,行 2 关键字“IN”附近的语法不正确。 消息 156,第 15 级,状态 1,第 3 行 关键字“IN”附近的语法不正确。

谁知道问题出在哪里?

提前致谢,

格雷格

【问题讨论】:

  • 如果表“A”位于另一台服务器上怎么办??

标签: sql-server sql-server-2005 select create-table


【解决方案1】:

我以前没有见过这种语法。这是我通常使用的。

SELECT * 
INTO temp2.dbo.B
FROM temp.dbo.A

【讨论】:

    【解决方案2】:

    查询应该是:

    SELECT * INTO temp2.dbo.b
    FROM temp.dbo.a
    

    【讨论】:

    • 我看到我和@Martin 的答案演变成彼此:)
    • 正如我认为只有一种正确的语法!
    【解决方案3】:

    您需要限定足够多的表名,以便 SQL Server 能够识别正确的表。

    名称结构为<server name>.<database name>.<schema>.<table>。由于两个表都位于同一台服务器上,因此您可以省去它,但仍然需要其余的:

    SELECT * 
    INTO temp2.dbo.B
    FROM temp.dbo.A
    

    【讨论】:

      【解决方案4】:

      请注意,SELECT INTO 不会复制索引。如果你也想要它们,你可以从源代码生成脚本;在目标数据库中运行并插入

      插入 temp2.​​dbo.b(列) 从 temp.dbo.a 中选择列

      【讨论】:

        【解决方案5】:

        如果您不想要数据,您可以这样做:

        SELECT TOP 0 * INTO temp2.dbo.b
        FROM temp.dbo.a
        

        【讨论】:

          【解决方案6】:

          如果您不想要数据并且只想要没有数据的表的 shcema,那么您也可以使用这种方法...

          SELECT * INTO temp2.dbo.b
          FROM temp.dbo.a where 1=0 
          

          【讨论】:

            【解决方案7】:

            最简单的方法是右键单击数据库temp 中的表A,然后单击Script Table as => CREATE to => New Query Editor Window。这将创建脚本。

            然后,更改以下 2 行。并为新数据库运行它。

            USE [temp2]
            
            ....
            
            CREATE TABLE [dbo].[B]
            
            .....
            

            【讨论】:

              【解决方案8】:

              如果您想从当前 DB 在另一个 DB 中创建新表,请运行查询。

              CREATE TABLE `destination_database_name`.table_dummy AS (
              SELECT * FROM currentDB.table
              )
              

              【讨论】:

                猜你喜欢
                • 2014-04-09
                • 1970-01-01
                • 1970-01-01
                • 2022-12-14
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多