2010-06-06 18 views
5

Mam bazę danych "temp" z tabelą "A". Stworzyłem nową bazę danych "temp2". Chcę skopiować tabelę "A" z "temp" do nowej tabeli w "temp2". Próbowałem to stwierdzenie, ale mówi, że mam nieprawidłową składnię, oto stwierdzenie:utworzyć tabelę z innej tabeli w innej bazie danych w serwerze sql 2005

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

Tutaj jest błąd:

Msg 156, Level 15, State 1, Linia 2 Niepoprawna składnia w pobliżu słowo kluczowe 'W'. Msg 156, poziom 15, stan 1, wiersz 3 Niepoprawna składnia w pobliżu słowa kluczowego "IN".

Ktoś wie, w czym problem?

Dzięki z góry,

Greg

+0

Co się stanie, jeśli tabela "A" znajduje się na innym serwerze? – Chella

Odpowiedz

17

Nie widziałem tego wcześniej składni. Właśnie tego normalnie używam.

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

Dzięki, że to zrobiło: D – Greg

1

Zapytanie powinno być:

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

Widzę odpowiedzi moje i @ Martina ewoluowały w siebie :) – egrunin

+0

Tak samo dobrze jak myślę, że istnieje tylko jedna prawidłowa składnia do tego! –

4

trzeba zakwalifikować wystarczająco nazwy tabeli dla SQL Server, aby być w stanie zidentyfikować prawidłową tabelę.

Struktura nazwy to <server name>.<database name>.<schema>.<table>. Ponieważ oba stoły żyć na tym samym serwerze można zrezygnować z tego, ale nadal trzeba resztę:

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

Dzięki! To się udało :) – Greg

0

Zauważ, że select into przyzwyczajenie skopiować indeksy. Jeśli chcesz je też można wygenerować skrypt ze źródła; prowadzony w db docelowej i należy wkładać do

wkładki do temp2.dbo.b (kolumny) wybrać kolumny z temp.dbo.a

0

If nie chcesz dane można zrobić:

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

Jeśli don, t chcą dane i tylko chcą shcema stołu bez danych, a następnie u mogą korzystać z tego podejścia również ...

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

Najprostszym sposobem jest kliknięcie prawym przyciskiem myszy na tabelę A z bazy danych temp, następnie kliknij Script Table as =>CREATE to =>New Query Editor Window. Spowoduje to utworzenie skryptu.

Następnie zmień następujące 2 linie. i uruchom go dla nowej bazy danych.

USE [temp2] 

.... 

CREATE TABLE [dbo].[B] 

..... 
0

Jeśli chcesz utworzyć nową tabelę w innej bazie danych z bieżącego DB, uruchom kwerendę.

CREATE TABLE `destination_database_name`.table_dummy AS (
SELECT * FROM currentDB.table 
) 
Powiązane problemy