2010-06-06 4 views
5

У меня есть база данных «temp» со столом «A». Я создал новую базу данных «temp2». Я хочу скопировать таблицу «A» из «temp» в новую таблицу в «temp2». Я попытался это заявление, но это говорит, что я неправильный синтаксис, вот инструкция:создать таблицу из другой таблицы в другой базе данных в sql server 2005

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

Здесь ошибка:

Msg 156, Level 15, State 1, Line 2 Неправильный синтаксис около ключевого слова 'В'. Msg 156, Level 15, State 1, Line 3 Неверный синтаксис рядом с ключевым словом 'IN'.

Кто-нибудь знает, в чем проблема?

Спасибо заранее,

Грег

+0

Что делать, если таблица «A» находится на другом сервере? – Chella

ответ

17

Я не видел, что синтаксис раньше. Это то, что я обычно использую.

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

Спасибо, что сделали это: D – Greg

1

Запрос должен быть:

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

Я вижу, что мои ответы и ответы Мартина эволюционировали друг в друга :) – egrunin

+0

Так же, как и я думаю, для этого есть только один правильный синтаксис! –

4

Вы должны квалифицироваться достаточно имени таблицы для SQL Server, чтобы быть в состоянии определить правильную таблицу.

Структура названия <server name>.<database name>.<schema>.<table>. Поскольку обе таблицы живут на том же сервере, вы можете обойтись без этого, но все-таки нужен отдых:

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

Спасибо! Это сделало трюк :) – Greg

0

Обратите внимание, что SELECT INTO обыкновение копировать индексы. Если вы хотите, чтобы они тоже, вы можете создать сценарий из источника, запустить в целевой БД и не вставить в

вставки в temp2.dbo.b (столбцы) выберите столбцы из temp.dbo.a

0

If вы не хотите, чтобы данные, которые вы можете сделать:

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

Если вы надеваете, т хотите, чтобы данные и только хотите shcema таблицы без данных, то вы можете использовать этот подход также ...

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

Самый простой способ - щелкнуть правой кнопкой мыши по таблице A из базы данных temp, затем нажмите Script Table as =>CREATE to =>New Query Editor Window. Это создаст скрипт.

Затем измените следующие 2 строки. и запустить его для новой базы данных.

USE [temp2] 

.... 

CREATE TABLE [dbo].[B] 

..... 
0

Если вы хотите создать новую таблицу в другой БД из текущей БД, запустите запрос.

CREATE TABLE `destination_database_name`.table_dummy AS (
SELECT * FROM currentDB.table 
) 
Смежные вопросы