在另一个表中创建从不同的数据库在SQL Server 2005中

在另一个表中创建从不同的数据库在SQL Server 2005中

问题描述:

我有一个数据库“temp”与表“A”。我创建了新的数据库“temp2”。 我想将表“A”从“temp”复制到“temp2”中的新表中。我想这个说法,但它说我有不正确的语法,这里的语句:在另一个表中创建从不同的数据库在SQL Server 2005中

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

以下是错误:关键字附近

消息156,级别15,状态1,2 行语法错误'在'。 Msg 156,Level 15,State 1,Line 3 关键字'IN'附近的语法不正确。

任何人都知道最新的问题?

由于提前,

格雷格

+0

如果表“A”位于另一个服务器中,该怎么办? – Chella 2013-03-19 05:56:28

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

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

谢谢,它做到了:D – Greg 2010-06-06 07:56:31

查询应该是:

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

我看到我和@ Martin的答案演变成了彼此:) – egrunin 2010-06-06 07:45:12

+0

就像我认为这里只有一个正确的语法! – 2010-06-06 07:48:22

你需要足够的资格为SQL Server表名,以便能够识别正确的表。

名称结构是<server name>.<database name>.<schema>.<table>。由于这两个表在同一个服务器上,你可以与免除,但仍需要休息:

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

谢谢!这就是诀窍:) – Greg 2010-06-06 07:48:59

注意,SELECT INTO不会复制指标。如果你希望他们也可以生成从源脚本;在目标数据库上运行,并做从temp.dbo.a

如果插入

INSERT INTO temp2.​​dbo.b(列) 选择列你不想要的数据,你可以这样做:

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

如果你不知道,不想的数据,并只想表无数据shcema然后u可以使用这种方法也...

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

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

然后,改变2行。并运行它为新的数据库。

USE [temp2] 

.... 

CREATE TABLE [dbo].[B] 

..... 

如果要在当前数据库的另一个数据库中创建新表,请运行查询。

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