Updategram에 매개 변수 전달(SQLXML 4.0)
적용 대상: SQL Server Azure SQL Database
Updategram은 템플릿입니다. 따라서 매개 변수를 전달할 수 있습니다. 템플릿 에 매개 변수를 전달하는 방법에 대한 자세한 내용은 Updategram 보안 고려 사항(SQLXML 4.0)을 참조하세요.
Updategram을 사용하면 NULL을 매개 변수 값으로 전달할 수 있습니다. NULL 매개 변수 값을 전달하려면 nullvalue 특성을 지정합니다. nullvalue 특성에 할당된 값은 매개 변수 값으로 제공됩니다. Updategram은 이 값을 NULL로 처리합니다.
참고 항목
sql:header> 및 <updg:header>에서< nullvalue를 정규화되지 않은 값으로 지정해야 합니다. 반면 updg:sync>에서는< nullvalue를 정규화된 값(예: updg:nullvalue)으로 지정합니다.
예제
다음 예제를 사용하여 작업 샘플을 만들려면 SQLXML 실행 요구 사항 예제에 지정된 요구 사항을 충족해야 합니다.
updategram 예제를 사용하기 전에 다음 사항에 유의하세요.
- 이 예제에서는 기본 매핑을 사용합니다(즉, updategram에 매핑 스키마가 지정되지 않음). 매핑 스키마 를 사용하는 updategram에 대한 자세한 예제는 Updategram에서 주석이 추가된 매핑 스키마 지정(SQLXML 4.0)을 참조하세요.
A. updategram에 매개 변수 전달
이 예제에서 updategram은 HumanResources.Shift 테이블에서 직원의 성을 변경합니다. updategram은 교대 근무를 고유하게 식별하는 데 사용되는 ShiftID와 Name이라는 두 개의 매개 변수를 전달합니다.
<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:header>
<updg:param name="ShiftID"/>
<updg:param name="Name" />
</updg:header>
<updg:sync >
<updg:before>
<HumanResources.Shift ShiftID="$ShiftID" />
</updg:before>
<updg:after>
<HumanResources.Shift Name="$Name" />
</updg:after>
</updg:sync>
</ROOT>
updategram을 테스트하려면
위의 Updategram을 메모장에 복사하고 UpdategramWithParameters.xml로 파일에 저장합니다.
ADO를 사용하여 SQLXML 4.0 쿼리를 실행하여 다음에 다음 줄을
cmd.Properties("Output Stream").Value = outStream
추가하여 updategram을 실행하도록 SQLXML 4.0 테스트 스크립트(Sqlxml4test.vbs)를 준비합니다.cmd.NamedParameters = True ' CreateParameter arguments: Name, Type, Direction, Size, Value cmd.Parameters.Append cmd.CreateParameter("@ShiftID", 2, 1, 0, 1) cmd.Parameters.Append cmd.CreateParameter("@Name", 200, 1, 50, "New Name")
B. NULL을 updategram에 매개 변수 값으로 전달
updategram을 실행할 때 NULL로 설정하려는 매개 변수에 "isnull" 값이 할당됩니다. Updategram은 "isnulll" 매개 변수 값을 NULL로 변환하고 그에 따라 처리합니다.
다음 updategram은 직원 타이틀을 NULL로 설정합니다.
<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:header nullvalue="isnull" >
<updg:param name="EmployeeID"/>
<updg:param name="ManagerID" />
</updg:header>
<updg:sync >
<updg:before>
<HumanResources.Employee EmployeeID="$EmployeeID" />
</updg:before>
<updg:after>
<HumanResources.Employee ManagerID="$ManagerID" />
</updg:after>
</updg:sync>
</ROOT>
updategram을 테스트하려면
위의 updategram을 메모장에 복사하고 파일에 UpdategramPassingNullvalues.xml 저장합니다.
ADO를 사용하여 SQLXML 4.0 쿼리를 실행하여 다음에 다음 줄을
cmd.Properties("Output Stream").Value = outStream
추가하여 updategram을 실행하도록 SQLXML 4.0 테스트 스크립트(Sqlxml4test.vbs)를 준비합니다.cmd.NamedParameters = True ' CreateParameter arguments: Name, Type, Direction, Size, Value cmd.Parameters.Append cmd.CreateParameter("@EmployeeID", 3, 1, 0, 1) cmd.Parameters.Append cmd.CreateParameter("@ManagerID", 3, 1, 0, Null)