Microsoft.SqlServer.Management.Smo.Scripter 개체를 사용하여 색인/제약 조건을 포함하여 데이터베이스의 각 테이블에 대한 스크립트를 생성합니다. 이 스크립트를 생성 할 때, 그러나, 기본값으로 설정되어, 그들은 예를 들어, 기본 값에도 불구하고, 기본 키 제약 조건의 WITH 절에서SQL Server 2005에서 테이블 인덱스 스크립팅시 관계형 인덱스 옵션 제거
CREATE TABLE [dbo].[AgeGroup](
[AgeGroupID] [int] NOT NULL),
CONSTRAINT [PK_AgeGroup] PRIMARY KEY CLUSTERED
(
[AgeGroupID] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
모든 옵션을 모든 인덱스 옵션이 포함되어 있습니다 (적어도 SQL Server 온라인 설명서에 따르면). Scripter 객체를 으로 가져 오지 않으려면에서 출력 옵션을 사용할 수 있습니까?
Server server = new Server("MYSERVER");
Scripter scripter = new Scripter(server);
scripter.Options.Indexes = true;
scripter.Options.AnsiPadding = true;
scripter.Options.AnsiFile = true;
scripter.Options.Permissions = true;
scripter.Options.ClusteredIndexes = true;
scripter.Options.DriAll = true;
Urn[] urns = new Urn[1];
Table t = server.Databases["MYDATABASE"].Tables["AgeGroup"];
urns[0] = t.Urn;
StringCollection sc = scripter.Script(urns);
using (StreamWriter sw = File.CreateText("AgeGroup.Table.sql"))
foreach (string str in sc)
sw.WriteLine(str);
이것은 내가 종료 된 접근 방식이다 내가 너의 대답을보기 전에 걸릴. 잘 작동하고 있습니다. –