테이블 및 뷰에 대한 Insert, Update, Delete 및 Select 작업을 위한 메시지 스키마
SQL Server Microsoft BizTalk 어댑터는 SQL Server 데이터베이스의 각 테이블과 뷰에 대한 삽입, 업데이트, 삭제 및 선택 작업을 표시합니다. 이러한 작업은 WHERE 절로 정규화된 적절한 SQL 문을 수행합니다. SQL 어댑터는 이러한 작업에서 강력한 형식의 레코드 및 레코드 집합을 사용합니다.
테이블 작업에 대한 메시지 구조
다음 표에서는 SQL Server 데이터베이스 테이블에서 SQL 어댑터에 의해 노출되는 기본 테이블 작업에 대한 XML 메시지 구조를 보여 줍니다. 작업의 대상 테이블은 메시지 작업에 지정되며 대상 네임스페이스에도 표시됩니다.
작업 | XML 메시지 | Description | 어댑터에서 SQL 실행 |
---|---|---|---|
삽입 | <Insert xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <Rows> <[TABLE_NAME]> <[FIELD1_NAME]>value1</[FIELD1_NAME]> <[FIELD2_NAME]>value2</[FIELD2_NAME]> … </[TABLE_NAME]> </Rows> </Insert> |
강력한 형식의 데이터의 제공된 레코드 집합을 대상 테이블에 삽입합니다. | INSERT INTO TABLE_NAME (FIELD1_NAME, FIELD2_NAME, …) VALUES (value1, value2, …); |
응답 삽입 | <InsertResponse xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <InsertResult> <long>[Value]</long> </InsertResult> </InsertResponse> |
응답 삽입 메시지에는 Long 데이터 형식의 배열이 포함되어 있습니다. 배열은 삽입된 행의 ID 값(있는 경우)을 저장합니다. 테이블에 ID 열이 없으면 반환 값은 NULL입니다. | -- |
선택 | 모든 레코드 선택:<Select xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <Columns>*</COLUMNS> <Query></Query> </Select> 레코드 집합에서 특정 열 선택: <Select xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <Columns>[COLUMN_list]</COLUMNS> <Query>where [WHERE_clause]</Query> </Select> 선택 작업의 일부로 레코드 업데이트: <Select xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <Columns>[COLUMN_list]</Columns> <Query>where [WHERE_clause];UPDATE [TABLE_NAME] SET [FIELD1_NAME] = [value1] where [WHERE_clause]</Query> </Select> |
SELECT 쿼리는 요소에 지정된 WHERE 절을 사용하여 대상 테이블에서 수행됩니다. 결과 집합에는 Columns 요소에 지정된 열 이름의 쉼표로 구분된 목록의 열이 <포함됩니다> . Columns> 요소에 <값을 제공해야 합니다. 테이블 또는 뷰에서 모든 열을 검색해야 하는 경우 Columns> 요소에 *를 <지정해야 합니다. 특정 열을 검색해야 하는 경우 열 이름을 쉼표로 구분하고 테이블 또는 뷰에 정의된 순서와 동일한 순서로 지정해야 합니다. SELECT 문에 WHERE 절을 포함해야 합니다. WHERE 절을 지정하지 않으려면 Query> 요소를 삭제<하거나 비워 둘 수 있습니다. 선택 작업을 사용하여 레코드를 업데이트할 수 있습니다. UPDATE 문은 SELECT 요청 XML의 Query> 요소에 <배치되며 WHERE 절과 세미콜론으로 구분됩니다. UPDATE 문은 SELECT 문의 결과 집합에서 작동하지 않습니다. |
모든 레코드 선택:SELECT * FROM [TABLE_NAME] WHERE [WHERE_clause]; 레코드 집합에서 특정 열 선택: SELECT [COLUMN_list] FROM [TABLE_NAME] WHERE [WHERE_clause]; 선택 작업의 일부로 레코드 업데이트: SELECT [COLUMN_list] FROM [TABLE_NAME] WHERE [WHERE_clause]; UPDATE [TABLE_NAME] SET [FIELD1_NAME] = value1 [WHERE_clause]; |
응답 선택 | <SelectResponse xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <SelectResult> <[TABLE_NAME]> <[FIELD1_NAME]>[value1]</[FIELD1_NAME]> <[FIELD2_NAME]>[value2]</[FIELD2_NAME]> … </[TABLE_NAME]> </SelectResult> <SelectResponse> |
SELECT 쿼리에서 생성된 강력한 형식의 결과 집합입니다. | -- |
업데이트 | <SelectResponse xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <SelectResult> <[TABLE_NAME]> <[FIELD1_NAME]>[value1]</[FIELD1_NAME]> <[FIELD2_NAME]>[value2]</[FIELD2_NAME]> … </[TABLE_NAME]> </SelectResult> </SelectResponse> <Update xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <Rows> <RowPair> <After> <[FIELD1_NAME]>[value1]</[FIELD1_NAME]> <[FIELD2_NAME]>[value2]</[FIELD2_NAME]> … </After> <Before> <[FIELD1_NAME]>[value3]</[FIELD1_NAME]> <[FIELD2_NAME]>[value4]</[FIELD2_NAME]> … </Before> </RowPair> </Rows> </Update> |
레코드 쌍의 배열을 입력으로 사용합니다. 각 레코드 쌍은 강력한 형식의 두 레코드의 컬렉션입니다. 요소의 <After> 첫 번째 레코드는 업데이트해야 하는 새 값에 해당합니다.두 번째 레코드(의 <Before> )는 행의 이전 값에 해당합니다. |
UPDATE [TABLE_NAME] SET [FIELD1_NAME] = value1, [FIELD2_NAME] = value2, … WHERE [FIELD1_NAME] = value3, [FIELD2_NAME] = value4, …; |
응답 업데이트 | <UpdateResponse xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <UpdateResult>[rows updated]</UpdateResult> </UpdateResponse> |
업데이트된 행 수는 UpdateResult 요소에 반환됩니다. | -- |
삭제 | <Delete xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <Rows> <[TABLE_NAME]> <[FIELD1_NAME]>value1</[FIELD1_NAME]> <[FIELD2_NAME]>value2</[FIELD2_NAME]> … </[TABLE_NAME]> </Rows> </Delete> |
-- | DELETE FROM [TABLE_NAME] WHERE [FIELD1_NAME] = value1, [FIELD2_NAME] = value2, …; |
응답 삭제 | <DeleteResponse xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <DeleteResult>[rows deleted]</DeleteResult> </DeleteResponse> |
삭제된 행 수는 DeleteResult 요소에 반환됩니다. | -- |
[VERSION] = 메시지 버전 문자열입니다. 예를 들면 입니다 http://schemas.microsoft.com/Sql/2008/05
.
[SCHEMA] = SQL Server 아티팩트 컬렉션(예: dbo).
[TABLE_NAME] = 테이블의 이름입니다. 예를 들어 Employee입니다.
[FIELD1_NAME] = 테이블 필드 이름; 예를 들어 NAME입니다.
[COLUMN_list] = 쉼표로 구분된 열 목록; 예: 이름, 나이, 지정.
[SELECT_query] = 대량 삽입 작업의 QUERY 요소에 지정된 SQL SELECT 문입니다. 예: "SELECT * from MyTable"
[WHERE_clause] = 작업에 사용되는 SELECT 문의 WHERE_clause. 예를 들어 ID > 10입니다.
중요
뷰에서 기본 테이블 작업에 대한 메시지 구조는 뷰가 테이블을 Insert xmlns="[VERSION]/ViewOp/[SCHEMA]/[VIEW_NAME]"
대체한다는 점을 제외하고 테이블의 메시지 구조와 동일합니다.
기본 테이블 작업에 대한 메시지 작업
다음 표에서는 테이블에 대한 기본 테이블 작업에 대해 SQL 어댑터에서 사용하는 메시지 작업을 보여 줍니다. SQL 어댑터는 메시지 작업에 지정된 테이블 이름을 사용하여 작업의 대상 테이블을 결정합니다.
작업 | 메시지 작업 | 예제 |
---|---|---|
삽입 | TableOp/Insert/[SCHEMA]/[TABLE_NAME] | TableOp/Insert/dbo/Employee |
응답 삽입 | TableOp/Insert/[SCHEMA]/[TABLE_NAME]/response | TableOp/Insert/dbo/Employee/response |
선택 | TableOp/Select/[SCHEMA]/[TABLE_NAME] | TableOp/Select/dbo/Employee |
응답 선택 | TableOp/Select/[SCHEMA]/[TABLE_NAME]/response | TableOp/Select/dbo/Employee/response |
업데이트 | TableOp/Update/[SCHEMA]/[TABLE_NAME] | TableOp/Update/dbo/Employee |
응답 업데이트 | TableOp/Update/[SCHEMA]/[TABLE_NAME]/response | TableOp/Update/dbo/Employee/response |
삭제 | TableOp/Delete/[SCHEMA]/[TABLE_NAME] | TableOp/Delete/dbo/Employee |
응답 삭제 | TableOp/Delete/[SCHEMA]/[TABLE_NAME]/response | TableOp/Delete/dbo/Employee/response |
[SCHEMA] = SQL Server 아티팩트 컬렉션(예: dbo).
[TABLE_NAME] = 테이블의 이름입니다. 예를 들어 Employee입니다.
중요
뷰에서 작업에 대한 메시지 동작은 "ViewOp"이 "TableOp"을 대체한다는 점을 제외하고 테이블의 경우와 동일합니다. 예를 들면 입니다 ViewOp``/Insert/dbo/Employee_View
.