내보내기(0) 인쇄
모두 확장

쿼리 식 및 Unique Resource Names

SMO(SQL Server Management Object) 모델 및 SQL Server PowerShell 스냅인은 XPath 식과 유사한 두 가지 유형의 식 문자열을 사용합니다. 쿼리 식은 개체 모델 계층 구조에 있는 하나 이상의 개체를 열거하는 데 사용되는 조건 집합을 지정하는 문자열입니다. URN(Unique Resource Name)은 단일 개체를 고유하게 식별하는 특정 유형의 쿼리 식 문자열입니다.


Object1[<FilterExpression1>]/ ... /ObjecN[<FilterExpressionN>]

<FilterExpression>::=
<PropertyExpression> [and <PropertyExpression>][...n]

<PropertyExpression>::=
      @BooleanPropertyName=true()
 | @BooleanPropertyName=false()
 | contains(@StringPropertyName, 'PatternString')
  | @StringPropertyName='String'
 | @DatePropertyName=datetime('DateString')
 | is_null(@PropertyName)
 | not(<PropertyExpression>)

Object

식 문자열의 Object 노드에서 나타내는 개체 유형을 지정합니다. 각 개체는 이러한 SMO 개체 모델 네임스페이스의 컬렉션 클래스를 나타냅니다.

Microsoft.SqlServer.Management.Smo

Microsoft.SqlServer.Management.Smo.Agent

Microsoft.SqlServer.Management.Smo.Broker

Microsoft.SqlServer.Management.Smo.Mail

Microsoft.SqlServer.Management.Dmf

Microsoft.SqlServer.Management.Facets

Microsoft.SqlServer.Management.RegisteredServers

Microsoft.SqlServer.Management.Smo.RegSvrEnum

예를 들어 ServerCollection 클래스에 대해 Server를 지정하고, DatabaseCollection 클래스에 대해 Database를 지정합니다.

@PropertyName

Object에서 지정된 개체와 연결되는 클래스 속성 중 하나의 이름을 지정합니다. 속성 이름은 @ 문자로 시작해야 합니다. 예를 들어 Database 클래스 속성인 IsAnsiNull에 대해 @IsAnsiNull을 지정합니다.

@BooleanPropertyName=true()

지정된 부울 속성이 TRUE로 설정된 개체를 모두 열거합니다.

@BooleanPropertyName=false()

지정된 부울 속성이 FALSE로 설정된 개체를 모두 열거합니다.

contains(@StringPropertyName, 'PatternString')

지정된 문자열 속성에 'PatternString'에 지정된 문자열 집합이 적어도 하나 이상 포함되어 있는 개체를 모두 열거합니다.

@StringPropertyName='PatternString'

지정된 문자열 속성 값이 'PatternString'에 지정된 문자 패턴과 정확하게 같은 개체를 모두 열거합니다.

@DatePropertyName= datetime('DateString')

지정된 날짜 속성 값이 'DateString'에 지정된 날짜와 일치하는 개체를 모두 열거합니다. DateString은 yyyy-mm-dd hh:mi:ss.mmm 형식을 따라야 합니다.

yyyy

4자리 연도

mm

두 자리 월(01 - 12)

dd

두 자리 날짜(01 - 31)

hh

24시간제를 사용하는 두 자리 시간(01 - 23)

mi

두 자리 분(01 - 59)

ss

두 자리 초(01 - 59)

mmm

밀리초 수(001 - 999)

이 형식으로 지정된 날짜를 SQL Server에 저장된 모든 날짜 형식에 대해 평가할 수 있습니다.

is_null(@PropertyName)

지정된 속성 값이 NULL인 개체를 모두 열거합니다.

not(<PropertyExpression>)

PropertyExpression의 평가 값을 부정하고 PropertyExpression에 지정된 조건과 일치하지 않는 개체를 모두 열거합니다. 예를 들어 not(contains(@Name, 'xyz'))는 이름에 xyz 문자열이 없는 개체를 모두 열거합니다.

쿼리 식은 SMO 모델 계층 구조에 있는 노드를 열거하는 문자열입니다. 각 노드에는 해당 노드에서 열거되는 개체를 결정하는 조건을 지정하는 필터 식이 있습니다. 쿼리 식은 XPath 식 언어에서 모델링됩니다. 쿼리 식은 XPath에서 지원하는 작은 식 집합을 구현하고 XPath에 없는 일부 확장도 포함합니다. XPath 식은 XML 문서에서 하나 이상의 태그를 열거하는 데 사용되는 조건 집합을 지정하는 문자열입니다. XPath에 대한 자세한 내용은 W3C를 참조하십시오.

쿼리 식은 Server 개체에 대한 절대 참조로 시작해야 합니다. /로 시작하는 상대 식은 사용할 수 없습니다. 쿼리 식에 지정된 개체 시퀀스는 관련 개체 모델에 있는 컬렉션 개체의 계층 구조를 따라야 합니다. 예를 들어 Microsoft.SqlServer.Management.Smo 네임스페이스의 개체를 참조하는 쿼리 식은 Server 노드로 시작하고 그 다음에 Database 노드 등이 와야 합니다.

개체에 대해 <FilterExpression>이 지정되지 않은 경우 해당 노드의 개체가 모두 열거됩니다.

URN(Unique Resource Names)

URN은 쿼리 식의 하위 집합입니다. 각 URN은 단일 개체에 대한 정규화된 참조를 형성합니다. 일반적인 URN에서는 Name 속성을 사용하여 각 노드의 단일 개체를 식별합니다. 예를 들어 이 URN은 특정 열을 참조합니다.

Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks']/Table[@Name='SalesPerson' and @Schema='Sales']/Column[@Name='SalesPersonID']

1. false()를 사용하여 개체 열거

이 쿼리 식은 MyComputer의 기본 인스턴스에서 AutoClose 특성이 false로 설정된 데이터베이스를 모두 열거합니다.

Server[@Name='MYCOMPUTER']/Database[@AutoClose=false()]

2. contains를 사용하여 개체 열거

이 쿼리 식은 대/소문자를 구분하지 않고 이름에 'm' 문자가 있는 데이터베이스를 모두 열거합니다.

Server[@Name='MYCOMPUTER']/Database[@CaseSensitive=false() and contains(@Name, 'm')] 

3. not을 사용하여 개체 열거

이 쿼리 식은 Production 스키마에 없으며 테이블 이름에 History라는 단어를 포함하는 AdventureWorks 테이블을 모두 열거합니다.

Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks']/Table[not(@Schema='Production') and contains(@Name, 'History')]

4. 최종 노드에 대한 필터 식 제공 안 함

이 쿼리 식은 AdventureWorks.Sales.SalesPerson 테이블의 열을 모두 열거합니다.

Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks"]/Table[@Schema='Sales' and @Name='SalesPerson']/Columns

4. datetime을 사용하여 개체 열거

이 쿼리 식은 특정 시간에 AdventureWorks 데이터베이스에서 만든 테이블을 모두 열거합니다.

Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks"]/Table[@CreateDate=datetime('2008-03-21 19:49:32.647')]

5. is_null을 사용하여 개체 열거

이 쿼리 식은 마지막 수정 날짜 속성에 대한 NULL이 없는 AdventureWorks 데이터베이스의 테이블을 모두 열거합니다.

Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks"]/Table[Not(is_null(@DateLastModified))]

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2015 Microsoft