임시 테이블에서 열을 삽입하고 ID 열을 순차적으로 증가 시키려고합니다. 다음 코드를 사용하고 있는데 아무 것도 삽입되지 않습니다.ID 열이있는 테이블에 삽입
INSERT INTO TestDataTable
SELECT Code, Description, ParentID FROM TempTable
어떻게 작동시킬 수 있는지 알려주십시오.
임시 테이블에서 열을 삽입하고 ID 열을 순차적으로 증가 시키려고합니다. 다음 코드를 사용하고 있는데 아무 것도 삽입되지 않습니다.ID 열이있는 테이블에 삽입
INSERT INTO TestDataTable
SELECT Code, Description, ParentID FROM TempTable
어떻게 작동시킬 수 있는지 알려주십시오.
ID를 IDENTITY column으로 만들어야합니다. 따라서 select into 문에서 다음과 같이해야합니다.
INSERT INTO TestDataTable
SELECT ID = IDENTITY(INT,1,1), Code, Description, ParentID FROM TempTable
두 가지 옵션이 있습니다. 첫 번째는 목표 테이블의 데이터 정의 언어에서이를 처리하는 것입니다. MS SQL Server 용으로 작성된이 코드 예제를 참조하십시오. 당신은 당신이 당신이 비어있을 것이다 알고있는 경우이 같은 테이블에가는 길에 지정 될 필요 달성 할 수있는 목표 테이블의 DDL에 처리 할 수 없습니다 경우
CREATE TABLE #A (
Id INT NOT NULL IDENTITY(1,1) PRIMARY KEY
, Code VARCHAR(10) NOT NULL)
CREATE TABLE #B (
Code VARCHAR(10) NOT NULL)
INSERT INTO #B VALUES ('alpha')
INSERT INTO #B VALUES ('beta')
INSERT INTO #B VALUES ('gamma')
INSERT INTO #B VALUES ('delta')
INSERT INTO #A (Code)
SELECT Code
FROM #B
SELECT *
FROM #A
DROP TABLE #A
DROP TABLE #B
.
CREATE TABLE #A (
Id INT NOT NULL PRIMARY KEY
, Code VARCHAR(10) NOT NULL)
CREATE TABLE #B (
Code VARCHAR(10) NOT NULL)
INSERT INTO #B VALUES ('alpha')
INSERT INTO #B VALUES ('beta')
INSERT INTO #B VALUES ('gamma')
INSERT INTO #B VALUES ('delta')
INSERT INTO #A (Id, Code)
SELECT ROW_NUMBER() OVER (ORDER BY Code), Code
FROM #B
SELECT *
FROM #A
DROP TABLE #A
DROP TABLE #B
나는 첫 번째 방법을 권장합니다. 훨씬 간단하며 코드에서 자동 증가를 처리하는 것에 대해 걱정할 필요가 없습니다.
'TestDataTable'의 스키마는 무엇입니까? – Jon