from - SQL Server SELECT en la tabla existente
sql server syntax where (5)
Funcionaría como se indica a continuación:
insert into Gengl_Del Select Tdate,DocNo,Book,GlCode,OpGlcode,Amt,Narration
from Gengl where BOOK=''" & lblBook.Caption & "'' AND DocNO=" & txtVno.Text & ""
Estoy intentando seleccionar algunos campos de una tabla e insertarlos en una tabla existente desde un procedimiento almacenado. Esto es lo que estoy intentando:
SELECT col1, col2
INTO dbo.TableTwo
FROM dbo.TableOne
WHERE col3 LIKE @search_key
Creo que seleccionar en es para tablas temporales, por eso recibo un error que dbo.TableTwo
ya existe.
¿Cómo puedo insertar varias filas de dbo.TableOne
en dbo.TableTwo
?
Hay dos formas diferentes de implementar la inserción de datos de una tabla a otra.
Para la tabla existente - INSERTAR EN SELECCIONAR
Este método se usa cuando la tabla ya se creó en la base de datos anteriormente y los datos se insertarán en esta tabla desde otra tabla. Si las columnas enumeradas en la cláusula de inserción y la cláusula de selección son las mismas, no se requiere que las enumeren. Es una buena práctica enumerarlos siempre con fines de legibilidad y escalabilidad.
----Create testable
CREATE TABLE TestTable (FirstName VARCHAR(100), LastName VARCHAR(100))
----INSERT INTO TestTable using SELECT
INSERT INTO TestTable (FirstName, LastName)
SELECT FirstName, LastName
FROM Person.Contact
WHERE EmailPromotion = 2
----Verify that Data in TestTable
SELECT FirstName, LastName
FROM TestTable
----Clean Up Database
DROP TABLE TestTable
Para la tabla no existente - SELECT INTO
Este método se utiliza cuando la tabla no se creó anteriormente y debe crearse cuando los datos de una tabla se insertarán en la tabla recién creada desde otra tabla. La nueva tabla se crea con los mismos tipos de datos que las columnas seleccionadas.
----Create a new table and insert into table using SELECT INSERT
SELECT FirstName, LastName
INTO TestTable
FROM Person.Contact
WHERE EmailPromotion = 2
----Verify that Data in TestTable
SELECT FirstName, LastName
FROM TestTable
----Clean Up Database
DROP TABLE TestTable
La instrucción SELECT INTO copia los datos de una tabla en una nueva tabla.
SELECT * INTO newtable [IN externaldb] FROM oldtable WHERE condition;
por ejemplo: la declaración SQL crea una copia de seguridad de los clientes
SELECT * INTO backup FROM Customers;
SELECT ... INTO ...
solo funciona si la tabla especificada en la cláusula INTO no existe; de lo contrario, debe usar:
INSERT INTO dbo.TABLETWO
SELECT col1, col2
FROM dbo.TABLEONE
WHERE col3 LIKE @search_key
Esto supone que solo hay dos columnas en dbo.TABLETWO; de lo contrario, debe especificar las columnas:
INSERT INTO dbo.TABLETWO
(col1, col2)
SELECT col1, col2
FROM dbo.TABLEONE
WHERE col3 LIKE @search_key
select *
into existing table database..existingtable
from database..othertables....
Si ya ha utilizado select * into tablename from other tablenames
, la próxima vez para agregar, diga select * into existing table tablename from other tablenames