SQL 및 스크립트를 사용한 데이터베이스 쿼리의 예
스크립트 기반 데이터베이스 쿼리를 사용하는 예제는 Windows Installer SDK(소프트웨어 개발 키트)에서 유틸리티 WiRunSQL.vbs로 제공됩니다. 이 유틸리티는 SQL 구문 섹션에 설명된 SQL의 Windows Installer 버전을 사용하여 데이터베이스 쿼리를 처리합니다.
테이블에서 레코드 삭제
다음 명령줄은 Test.msi 데이터베이스의 Feature 테이블에서 기본 키 RED가 있는 레코드를 삭제합니다.
Cscript WiRunSQL.vbs Test.msi "DELETE FROM `Feature` WHERE `Feature`.`Feature`='RED'"
데이터베이스에 테이블 추가
다음 명령줄은 Directory 테이블을 Test.msi 데이터베이스에 추가합니다.
CScript WiRunSQL.vbs Test.msi "CREATE TABLE `Directory` (`Directory` CHAR(72) NOT NULL, `Directory_Parent` CHAR(72), `DefaultDir` CHAR(255) NOT NULL LOCALIZABLE PRIMARY KEY `Directory`)"
데이터베이스에서 테이블 제거
다음 명령줄은 Test.msi 데이터베이스에서 Feature 테이블을 제거합니다.
Cscript WiRunSQL.vbs Test.msi "DROP TABLE `Feature`"
테이블에 새 열 추가
다음 명령줄은 테스트 열을 Test.msi 데이터베이스의 CustomAction 테이블에 추가합니다.
CScript WiRunSQL.vbs Test.msi "ALTER TABLE `CustomAction` ADD `Test` INTEGER"
테이블에 새 레코드 삽입
다음 명령줄은 Test.msi 데이터베이스의 Feature 테이블에 새 레코드를 삽입합니다.
Cscript WiRunSQL.vbs Test.msi "INSERT INTO `Feature` (`Feature`.`Feature`,`Feature`.`Feature_Parent`,`Feature`.`Title`,`Feature`.`Description`, `Feature`.`Display`,`Feature`.`Level`,`Feature`.`Directory_`,`Feature`.`Attributes`) VALUES ('Tennis','Sport','Tennis','Tournament',25,3,'SPORTDIR',2)"
그러면 다음 레코드가 Test.msi의 Feature 테이블에 삽입됩니다.
Feature 테이블
기능 | Feature_Parent | 제목 | 설명 | 표시 | Level | Directory_ | 특성 |
---|---|---|---|---|---|---|---|
테니스 | 스포츠 | 테니스 | 토너먼트 | 25 | 3 | SPORTDIR | 2 |
INSERT INTO 또는 UPDATE SQL 쿼리를 사용하여 테이블에 직접 이진 데이터를 삽입할 수 없습니다. 자세한 내용은 SQL을 사용하여 테이블에 이진 데이터 추가를 참조하세요.
테이블의 기존 레코드 수정
다음 명령줄은 제목 필드의 기존 값을 "Performances"로 변경합니다. 업데이트된 레코드에는 기본 키로 "Arts"가 있으며 Test.msi 데이터베이스의 Feature 테이블에 있습니다.
Cscript WiRunSQL.vbs Test.msi "UPDATE `Feature` SET `Feature`.`Title`='Performances' WHERE `Feature`.`Feature`='Arts'"
레코드 그룹 선택
다음 명령줄은 Test.msi 데이터베이스의 ErrorDialog에 속하는 모든 컨트롤의 이름과 형식을 선택합니다.
CScript WiRunSQL.vbs Test.msi "SELECT `Control`, `Type` FROM `Control` WHERE `Dialog_`='ErrorDialog' "
메모리에 테이블 저장
다음 명령줄은 메모리에 Test.msi 데이터베이스의 Component 테이블을 잠급니다.
CScript WiRunSQL.vbs Test.msi "ALTER TABLE `Component` HOLD"
메모리에서 테이블 해제
다음 명령줄은 메모리에서 Test.msi 데이터베이스의 Component 테이블을 해제합니다.
CScript WiRunSQL.vbs Test.msi "ALTER TABLE `Component` FREE"