SQL Server 2005의 인덱스된 뷰가 관련된 SMO 개체 스크립트 때 인덱스된 뷰에 정의된 스크립트 일부가 생성되는

기술 자료 번역 기술 자료 번역
기술 자료: 918480 - 이 문서가 적용되는 제품 보기.
# 버그: 403696 (SQLBUDT)
모두 확대 | 모두 축소

이 페이지에서

현상

때 인덱스된 뷰가 인덱스된 뷰에 정의된 클러스터된 인덱스 스크립트 일부로, Microsoft SQL Server 2005의 관련된 SQL Server 관리 개체 (SMO) 개체를 스크립트 생성되지 않습니다. 따라서 클러스터된 인덱스 뷰에 대해 먼저 지정해야 하는 개체를 만들려면 생성된 스크립트를 실행할 수 없습니다.

해결 과정

스크립트를 사용하여 SMO 해당 개체가 따라 다음 방법 중 하나를 사용하여 이 문제를 해결하려면, 인덱스된 뷰를 관련이 있습니다.

SMO 개체 스크립트 메서드를 호출하여합니다

  1. ScriptingOptions 개체를 정의하십시오.
  2. ScriptingOptions 개체의 인덱스 속성의 값을 True로 설정하십시오.
  3. SMO 개체 스크립트 메서드를 호출하는 대신 SMO 개체의 Script(ScriptingOptions) 메서드를 호출하십시오. 이렇게 하려면 스크립트 메서드의 ScriptingOptions 개체를 전달하십시오.
예를 들어, 다음 코드 예제와 유사한 코드를 사용하십시오.

Microsoft Visual C#

Server srv = new Server(@".\MySQLServer");
Database db = srv.Databases["MyDB"];
View vw = db.Views["MyView"];

//Define the ScriptingOptions object.
ScriptingOptions sco = new ScriptingOptions();

//Set the value of the Indexes property.
sco.Indexes = true;

//Specify the values of the other members of the sco object.

System.Collections.Specialized.StringCollection script = null;

//Pass the ScriptingOptions object.
script = vw.Script(sco);

foreach (string str in script)
{
    Console.WriteLine(str);
    Console.WriteLine("go");
}

Visual Basic .NET

Dim srv As Server = New Server(".\MySQLServer")
Dim db As Database = srv.Databases("MyDB")
Dim vw As View = db.Views("MyView")

'Define the ScriptingOptions object.
Dim sco As ScriptingOptions = New ScriptingOptions()

'Set the value of the Indexes property.
sco.Indexes = True

'Specify the values of the other members of the sco object.

'Pass the ScriptingOptions object.
Dim script As System.Collections.Specialized.StringCollection = vw.Script(sco)

Dim str As String
For Each str In script
    Console.WriteLine(str)
    Console.WriteLine("go")
Next str

스크립터 개체 사용

  1. 스크립터 개체의 Options.Indexes 멤버의 값을 True로 설정하십시오.
  2. 스크립트를 생성하려면 SMO 개체 참조를 스크립터 개체의 스크립트 메서드에 전달하십시오.
예를 들어, 다음 코드 예제와 유사한 코드를 사용하십시오.

Visual C#

Server srv = new Server(@".\MySQLServer");
Database db = srv.Databases["MyDB"];
View vw = db.Views["MyView"];

Scripter scr = new Scripter();
scr.Server = srv;

//Set the value of the Options.Indexes member.
scr.Options.Indexes = true;

//Specify the value of the other members of the scr.Options property.

SqlSmoObject[] objs = new SqlSmoObject[1];
objs[0] = vw;

System.Collections.Specialized.StringCollection script = null;

//Pass the SMO object reference to the Script method.
script = scr.Script(objs);

foreach (string str in script)
{
    Console.WriteLine(str);
    Console.WriteLine("go");
}

Visual Basic .NET

Dim srv As Server = New Server(".\MySQLServer")
Dim db As Database = srv.Databases("MyDB")
Dim vw As View = db.Views("MyView")

Dim scr As Scripter = New Scripter()
scr.Server = srv

'Set the value of the Options.Indexes member.
scr.Options.Indexes = True

'Specify the value of the other members of the scr.Options object.

Dim objs As SqlSmoObject() = New SqlSmoObject() {vw}

'Pass the ScriptingOptions object.
Dim script As System.Collections.Specialized.StringCollection = scr.Script(objs)

Dim str As String
For Each str In script
    Console.WriteLine(str)
    Console.WriteLine("go")
Next str
참고스크립터 개체의 옵션 속성을 ScriptingOptions 개체를 반환합니다.

전송 개체를 사용하십시오.

  1. 전송 개체의 Options.Indexes 멤버의 값을 true 로 설정하십시오.
  2. 전송 개체의 ScriptTransfer 메서드를 사용하여 스크립트를 생성합니다.
예를 들어, 다음 코드 예제와 유사한 코드를 사용하십시오.

Visual C#

Server srv = new Server(@".\MySQLServer");
Database db = srv.Databases["MyDB"];

Transfer trans = new Transfer(db);

//Set the value of the Options.Indexes member.
trans.Options.Indexes = true;

//Specify the value of the other members of the trans.Options property.

System.Collections.Specialized.StringCollection script = null;

//Use the ScriptTransfer method of the Transfer object to generate the script.
script = trans.ScriptTransfer();

foreach (string str in script)
{
    Console.WriteLine(str);
    Console.WriteLine("go");
}

Visual Basic .NET

Dim srv As Server = New Server(".\MySQLServer")
Dim db As Database = srv.Databases("MyDB")

Dim trans As Transfer = New Transfer(db)

'Set the value of the Options.Indexes member.
trans.Options.Indexes = True

'Specify the value of the other members of the trans.Options property.

'Use the ScriptTransfer method of the Transfer object to generate the script.
Dim script As System.Collections.Specialized.StringCollection = trans.ScriptTransfer()

Dim str As String
For Each str In script
    Console.WriteLine(str)
    Console.WriteLine("go")
Next str
참고전송 개체의 옵션 속성을 ScriptingOptions 개체를 반환합니다.

현재 상태

Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열된 Microsoft 제품에서 이 문제를 확인했습니다.

참조

ScriptingOptions 클래스에 대한 자세한 내용은 다음 MSDN) Microsoft 개발자 네트워크 (웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.scriptingoptions.aspx

속성

기술 자료: 918480 - 마지막 검토: 2006년 5월 17일 수요일 - 수정: 1.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
키워드:?
kbmt kbexpertiseadvanced kbtshoot kbprb KB918480 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com