[SQL] 기존 테이블에 SQL 서버 SELECT
SQL기존 테이블에 SQL 서버 SELECT
나는 하나 개의 테이블에서 일부 필드를 선택하고 저장 프로 시저에서 기존 테이블에 삽입하려합니다. 여기에 내가 노력하고 무엇 :
SELECT col1, col2
INTO dbo.TableTwo
FROM dbo.TableOne
WHERE col3 LIKE @search_key
나는 SELECT ... INTO ... 난 dbo.TableTwo이 이미 존재한다는 오류가 발생하는 이유를 임시 테이블에 대한 생각합니다.
어떻게 dbo.TableTwo에 dbo.TableOne에서 여러 행을 삽입 할 수 있습니다?
해결법
-
==============================
1.SELECT ... INTO는 ...에만 INTO 절에 지정된 테이블이 존재하지 않습니다 작동하는 경우 - 그렇지 않으면, 당신은 사용해야합니다 :
SELECT ... INTO는 ...에만 INTO 절에 지정된 테이블이 존재하지 않습니다 작동하는 경우 - 그렇지 않으면, 당신은 사용해야합니다 :
INSERT INTO dbo.TABLETWO SELECT col1, col2 FROM dbo.TABLEONE WHERE col3 LIKE @search_key
이 dbo.TABLETWO에서 두 개의 열이의 가정 - 그렇지 않으면 열을 지정해야합니다 :
INSERT INTO dbo.TABLETWO (col1, col2) SELECT col1, col2 FROM dbo.TABLEONE WHERE col3 LIKE @search_key
-
==============================
2.한 테이블에서 다른 테이블로 데이터를 삽입 구현하는 두 가지 방법이 있습니다.
한 테이블에서 다른 테이블로 데이터를 삽입 구현하는 두 가지 방법이 있습니다.
테이블이 이미 데이터베이스 이전에 생성되는 경우이 방법이 사용되고 다른 데이터 테이블이 테이블에 삽입한다. 삽입 절과 select 절에 나열된 열이 동일한 경우, 그들은 목록 그들에게 필요하지 않습니다. 항상 가독성과 확장 성을 목적으로 나열하는 것이 좋습니다.
----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
테이블이 이전에 생성되지 않고, 요구는 하나 개의 테이블에서 데이터를 다른 테이블에서 새롭게 생성 된 테이블에 삽입 될 때 생성 될 때,이 방법은 사용된다. 새로운 표가 선택된 열과 동일한 데이터 형식으로 생성된다.
----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
1 2 참조
-
==============================
3.아래에 주어진 그것은 작동합니다 :
아래에 주어진 그것은 작동합니다 :
insert into Gengl_Del Select Tdate,DocNo,Book,GlCode,OpGlcode,Amt,Narration from Gengl where BOOK='" & lblBook.Caption & "' AND DocNO=" & txtVno.Text & ""
-
==============================
4.
select * into existing table database..existingtable from database..othertables....
당신이 추가하려면 이미 다른 테이블 이름, 다음에서 TABLENAME로 선택 *를 사용한 경우, 다른 테이블 이름에서 기존 테이블 TABLENAME로 선택 * 말
-
==============================
5.대상 테이블이 존재합니까하지만 경우에 당신은 열 이름을 지정하지 않으 :
대상 테이블이 존재합니까하지만 경우에 당신은 열 이름을 지정하지 않으 :
DECLARE @COLUMN_LIST NVARCHAR(MAX); DECLARE @SQL_INSERT NVARCHAR(MAX); SET @COLUMN_LIST = (SELECT DISTINCT SUBSTRING( ( SELECT ', table1.' + SYSCOL1.name AS [text()] FROM sys.columns SYSCOL1 WHERE SYSCOL1.object_id = SYSCOL2.object_id and SYSCOL1.is_identity <> 1 ORDER BY SYSCOL1.object_id FOR XML PATH ('') ), 2, 1000) FROM sys.columns SYSCOL2 WHERE SYSCOL2.object_id = object_id('dbo.TableOne') ) SET @SQL_INSERT = 'INSERT INTO dbo.TableTwo SELECT ' + @COLUMN_LIST + ' FROM dbo.TableOne table1 WHERE col3 LIKE ' + @search_key EXEC sp_executesql @SQL_INSERT
from https://stackoverflow.com/questions/4101739/sql-server-select-into-existing-table by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL은 오름차순으로 정렬 할 때 널 (null) 값이 마지막으로 올 수 있도록하는 방법 (0) | 2020.03.31 |
---|---|
[SQL] 유연한 추상적 인 테이블 대 다수의 열이 하나의 고정 된 테이블 (0) | 2020.03.31 |
[SQL] (CTE)를 공통 테이블 표현식을 사용하는 경우 (0) | 2020.03.31 |
[SQL] 검색 필드에 텍스트를 대체 MYSQL (0) | 2020.03.31 |
[SQL] 개정을위한 데이터베이스 설계? (0) | 2020.03.31 |