update - sintaxis insert into mysql
¿Diferencias entre INSERTAR seleccionar e insertar en seleccionar? (4)
Creo que las dos afirmaciones que has enumerado son, de hecho, las mismas. La instrucción "INTO" falta en el primer lote, pero está implícita como parte de la instrucción INSERT.
Para propósitos de ilustración, aquí hay algunas formas diferentes de usar la declaración INSERT.
SELECT
1 AS ID ,
''SomeText'' AS SomeText
INTO #tmpTableName
INSERT INTO #tmpTableName (ID,SomeText)
SELECT 2, ''Text''
INSERT INTO #tmpTableName (ID,SomeText)
VALUES(3, ''MoreText'')
SELECT * FROM #tmpTableName
DROP TABLE #tmpTableName
A menudo veo dos estilos, INSERTAR seleccionar e insertar en seleccionar, ¿cuáles son las diferencias? ¿Son lo mismo?
Estoy usando SQL Server 2008 Enterprise.
Aquí hay dos muestras.
INSERT california_authors (au_id, au_lname, au_fname)
SELECT au_id, au_lname, au_fname
FROM authors
WHERE State = ''CA''
http://www.sqlteam.com/article/using-select-to-insert-records
INSERT INTO Store_Information (store_name, Sales, Date)
SELECT store_name, Sales, Date
FROM Sales_Information
http://www.1keydata.com/sql/sqlinsert.html
gracias de antemano, george
En SQL Server
y MySQL
, INTO
es sintaxis pura de azúcar.
Ninguna diferencia.
Oracle
y PostgreSQL
requieren que esta palabra clave esté presente, y, AFAIR
, los ANSI
SQL
también lo hacen.
Son los mismos El INTO
es solo opcional.
SELECT...INTO
crea una nueva tabla, mientras que INSERT...SELECT
requiere una tabla existente. Así que hay implicaciones de seguridad y posibles problemas de rendimiento a considerar.
Además, con SELECT...INTO
, la nueva tabla tiene las mismas columnas pero no tiene claves ni restricciones, por lo que es mejor simplemente para crear una copia de seguridad temporal.