Chcę utworzyć tabelę od Wybierz wyniku zapytania w SQL Server, próbowałemJak utworzyć tabelę od Wybierz wyniku zapytania w SQL Server 2008
create table temp AS select.....
ale mam błąd
niepoprawna składnia w pobliżu słowo kluczowe 'AS'
Chcę utworzyć tabelę od Wybierz wyniku zapytania w SQL Server, próbowałemJak utworzyć tabelę od Wybierz wyniku zapytania w SQL Server 2008
create table temp AS select.....
ale mam błąd
niepoprawna składnia w pobliżu słowo kluczowe 'AS'
Użyj następującej składni, aby utworzyć nową tabelę ze starym stole serwer SQL 2008
Select * into new_table from old_table
To tak naprawdę nie odpowiada na pytanie. Gdzie jest zapytanie "WYBIERZ"? – arman
@Jason: Jest tam. To wszystko wokół klauzuli 'INTO' ... –
@LukasEder Nie, on oznacza' select', który będzie tam w 'CREATE TABLE ... AS SELECT ...', który jest obecnie gdzie Sanjeev ma 'old_table'. To jest fajna linia kodu, ale brakuje jej funkcjonalności CTAS, ponieważ jest to tylko wybór z tabeli, a nie instrukcja SELECT, która jest celem wykonywania CTAS –
użytku SELECT...INTO
Instrukcja SELECT INTO tworzy nową tabelę i wypełnia ją zestawem wyników instrukcji SELECT. SELECT INTO może być użyte do łączenia danych z kilku tabel lub widoków w jedną tabelę. Można go również użyć do utworzenia nowej tabeli zawierającej dane wybrane z połączonego serwera .
Przykład,
SELECT col1, col2 INTO #a -- <<== creates temporary table
FROM tablename
standardowej składni,
SELECT col1, ....., [email protected] -- <<== select as many columns as you want
INTO [New tableName]
FROM [Source Table Name]
powinno to być oznaczone jako poprawna odpowiedź. – Led
Uzgodnione. To jest poprawna odpowiedź. –
Spróbuj:
SELECT * INTO NewTable FROM OldTable
Wybierz [polowe nazwy] z [New] z tabeli [Tabela Source]
Spróbuj użyć SELECT INTO ....
SELECT ....
INTO TABLE_NAME(table you want to create)
FROM source_table
Należy uważać, MSSQL: "SELECT * INTO NewTable FROM OldTable"
nie zawsze jest taka sama jak MySQL: "create table temp AS select.."
myślę, że istnieją sytuacje, kiedy to (w MSSQL) nie gwarantuje, że wszystkie pola w nowej tabeli są tego samego typu, co stare.
Na przykład:
create table oldTable (field1 varchar(10), field2 integer, field3 float)
insert into oldTable (field1,field2,field3) values ('1', 1, 1)
select top 1 * into newTable from oldTable
nie zawsze wydajność:
create table newTable (field1 varchar(10), field2 integer, field3 float)
ale mogą być:
create table newTable (field1 varchar(10), field2 integer, field3 integer)
To jest poprawne. Istnieje mnóstwo powtarzających się rozwiązań, które przekraczają tę krytyczną różnicę. –
z oficjalnych dokumentów dla ** klauzula "SELECT - INTO (języka Transact-SQL)" **: "Każda kolumna w nowej_tablicy ma tę samą nazwę, typ danych, wartość zerową i wartość, co odpowiednie wyrażenie na liście wyboru." (https://docs.microsoft.com/en-us/sql/t-sql/queries/select-into-clause-transact-sql). Proszę, wybacz mojej niewiedzy, czy czegoś brakuje? – HEDMON
Tworzenie tabeli temp, jak select 1 z podwójnym - (Oracle) – Elmer
Czy znak jako duplikat może zostać cofnięty? Inne związane z tym pytanie jest znacznie mniej jasne i zawiera mniej odpowiedzi. –