요약 : odbc 완전 바인딩 다중 행 버퍼 기술을 사용하여 테이블 값 매개 변수의 행/열 인덱스에서 Nullable 필드 값을 어떻게 지정합니까?NULL 필드 값이 포함 된 Sql Server ODBC TVP 프로 시저
세부 사항 : 다음과 같이 나는 테이블 유형을 정의했습니다 :
CREATE TYPE tp_Transition AS TABLE
(
[Timestamp] [datetimeoffset](7) NOT NULL,
[Value] [float] NULL,
);
GO
그래서 타임 스탬프는 null 일 수 없습니다 있지만 값이 있습니다.
지금 나는 테이블 반환 매개 변수로 새로 정의 된 형식을 사용하여 새 저장 프로 시저를 만들 :
CREATE PROCEDURE [dbo].[sp_InsertTransition]
@TransitionBatch AS [tp_Transition] READONLY
AS
BEGIN
SET NOCOUNT ON
INSERT INTO [dbo].[Transition] ([Timestamp], [Value])
SELECT [Timestamp], [Value] FROM @TransitionBatch;
END;
이 새로운 절차를 테스트하기를, 나는 다음과 같은 코드를 작성, 행 2 [가치 점에 유의 ] 필드가 null입니다 :
DECLARE @BatchTVP AS [tp_Transition];
/* Add data to the table variable. */
INSERT INTO @BatchTVP ([Timestamp], [Value])
VALUES
('2014-05-14 13:05:00.000', 130500.009),
('2014-05-14 13:05:01.000', NULL);
/* Pass the table variable data to a stored procedure. */
EXEC [dbo].[sp_InsertTransition] @BatchTVP;
위의 코드는 제대로 작동하며 예상대로 값이 테이블에 삽입됩니다. http://technet.microsoft.com/en-us/library/ff878030.aspx
:는 지금은 ODBC와 완전 바운드 다중 행 버퍼이 TechNet 문서에 설명 된대로 (메모리의 모든 값을 가진 TVP로 데이터를 전송)와 테이블 반환 매개 변수를 사용하여 C++에서이 SQL 코드를 복제 할
사양의 대부분 페이지를 읽었지만이를 달성 할 수있는 방법을 정확히 알 수 없습니다.
어떤 힌트를 주셔서 감사합니다.
프레데릭