2

한 테이블의 데이터를 다른 테이블에 삽입하려고합니다. Table1에는 고유 식별자가 없지만 Table2는 고유 식별자를 가지고 있지 않습니다. NEWID()을 사용하여 삽입하려고했으나 구문 오류가 발생합니다. 누군가 내가 잘못하고있는 것을 말해 줄 수 있습니까? 표 2는 아직이 쿼리를 사용하여 만들어지지 않습니다 경우삽입시 SQL에서 uniqueidentifier 자동 생성 관련 문제

INSERT INTO Table2 (NEWID(), [Item Description], [Item Cost]) 
SELECT Description, Cost FROM Table1 
WHERE Id = '1' 

답변

3

: 표 2에 대한 스키마가 이미 생성 된 경우

SELECT 
    NEWID() AS [ID] 
    ,Description AS [Item Description] 
    ,Cost AS [Item Cost] 
INTO Table2 
FROM Table1 
WHERE Id = '1' 

하지만를, 그리고 식별자에 대한 열을 다음있다 0의 데이터를 사용하여 생성, 두 테이블의 스키마와 그것의 데이터를 채우려면 다음 코드를 사용

INSERT INTO Table2 ([ID], [Item Description], [Item Cost]) 
SELECT 
    NEWID() 
    , Description 
    , Cost 
FROM Table1 
WHERE Id = '1' 

을하지만 아직 표 2에 대한 스키마를 작성하지 않은 경우, 나는 추천 : 당신은 사용할 수 있습니다. 당신이 채우기에 대해 걱정할 필요가 없습니다 각 행에 대한 고유 식별자 번호를 자동으로 생성합니다 정체성과 ID 열을 설정

CREATE TABLE Table2 (
    [ID] INT Identity 
    ,[Item Description] AS NVARCHAR(MAX) 
    ,[Item Cost] AS NUMERIC(18, 2)) 

INSERT INTO Table2([Item Description] , [Item Cost]) 
SELECT 
    Description 
    , Cost 
FROM Table1 
WHERE Id = '1' 

. 숫자는 증분 값이며 기본적으로 1부터 시작하여 각 행에 대해 1 씩 증가합니다.

[ID] 열을 [ID] INTEGER IDENTITY(1000, 2)으로 정의하여 시작 번호와 증분 값을 정의 할 수도 있습니다. 그러면 시작 값이됩니다 1000이고 증가분은 2입니다 (그러나 이것은 단지 참고 용입니다).

+0

은 의미가 있습니다. 이제 시도해 보겠습니다. – nate

+0

@nate 방금 내 답변에 세부 정보를 추가했습니다. 아직 한 번 더 의견을 남깁니다. –

+0

그게 효과가있다. 고마워! – nate