sintaxis - where condition sql server




SQL Server SELECT en la tabla existente (4)

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

Ref. 1 2


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





stored-procedures