Программирование >>  Программирование баз данных 

1 ... 304 305 306 [ 307 ] 308 309 310 ... 346


InitializeComponent();

private void btnBackupDB Click(object sender, EventArgs e)

Создание объекта сервера и подключение к нему ServerConnection cn = new ServerConnection(); СП.LoginSecure = true;

Se2rver svr = new Se2rver(cn); svr.ConnectionContext.Connect();

Создание и определение объекта резервной копии

Backup bkp = new Backup();

bkp.Action = BackupActionType.Database;

bkp.Database = AdventureWorks ;

bkp.Devices.AddDevice(@ с:XSMGSample.bak , DeviceType.File);

Запуск процедуры резервного копирования. Применяемый метод имеет суффикс Async и обеспечивает асинхронное выполнение операции, но можно было бы с таким же успехом воспользоваться синхронным режимом с применением метода SqlBackup

bkp.SqlBackupAsync(svr);

СП.Disconnect();

private void btnCreateDB Click(object sender, EventArgs e)

Создание объекта сервера и подключение к нему ServerConnection cn = new ServerConnectionО; СП.LoginSecure = true;

Se2rver svr = new Server (cn); svr.ConnectionContext.Connect();

Database db = new Database();

db.Parent = svr; db.Name = SMODatabase ; db.Create();

txtResult.Text = Database Created ; cn.Disconnect();

private void btnDropDB Click(object sender, EventArgs e)

Создание объекта сервера и подключение к нему ServerConnection cn = new ServerConnectionО; СП.LoginSecure = true;

Server svr = new Server(cn); svr.ConnectionContext.Connect();

Database db = svr.Databases[ SMODatabase ];

db.Drop();

txtResult.Text = Database Dropped ;



СП.Disconnect{);

private void btnCreateTables Click(object sender, EventArgs e)

Создание объекта сервера и подключение к нему ServerConnection cn = new ServerConnection(); cn.LoginSecure = true;

Server svr = new Server(cn); svr.ConnectionContext.Connect();

Получение ссылки на используемую при проверке базу данных SMO Database db = svr.Databases[ SMODatabase ];

Создание объекта таблицы

Table ParentTable = new Table(db, ParentTable ); Определение структуры таблицы

Column ParentKey = new Column(ParentTable, ParentKey ); ParentKey.DataType = DataType.Int; ParentKey.Nullable = false; ParentKey.Identity = true;

Column ParentDescription = new Column (ParentTable, ParentDescription ) ; ParentDescription.DataType = DataType .NVarCliarMax; ParentDescription.Nullable = false;

Добавление других необходимых объектов к определению таблицы ParentTable.Columns.Add(ParentKey); ParentTable.Columns.Add(ParentDescription);

Создание первичного ключа

Index PKParentKey = new Index(ParentTable, PKParentKey ); PKParentKey.IndexKeyType = IndexKeyType.DriPrimaryKey;

PKParentKey. IndexedColumns. Add (new IndexedColumn (PKParentKey, ParentKey )) ; ParentTable.Indexes.Add(PKParentKey); ParentTable.Create() ;

Создание объекта дочерней таблицы

Table ChildTable = new Table(db, ChildTable );

Определение структуры дочерней таблицы

Column ChildParentKey = new Column(ChildTable, ParentKey ); ChildParentKey.DataType = DataType.Int; ChildParentKey.Nullable = false;

Column ChildKey = new Column(ChildTable, ChildKey ); ChildKey.DataType = DataType.Int; ChildKey.Nullable = false;

Column ChildDescription = new Column(ChildTable, ChildDescription ), ChiIdDescription.DataType = DataType.NVarCharMax; ChildDescription.Nullable = false;

Добавление других необходимых объектов к определению таблицы ChildTable.Columns.Add(ChildParentKey); ChildTable.Columns.Add(ChildKey); ChildTable.Columns.Add(ChildDescription);



Создание составного первичного ключа

Index PKChildKey = new Index(ChildTable, PKChildKey );

PKChildKey.IndexKeyType = IndexKeyType.DriPrimaryKey;

PKChildKey. IndexedColumns. Add (new IndexedColumn (PKChildKey, ParentKey )); PKChildKey. IndexedColumns. Add (new IndexedColumn (PKChildKey, ChildKey )) ;

ChildTable.Indexes.Add(PKChildKey);

Создание внешнего ключа

ForeignKey FKParent = new ForeignKey(ChildTable, FKParent );

В приведенном ниже определении первое значение ParentKey представляет собой имя текущей таблицы.

А второе значение соответствует имени таблицы, упомянутой в ссьшке (или только столбцу) ForeignKeyColumn FKParentParentKey =

new ForeignKeyColumn(FKParent, ParentKey , ParentKey );

FKParent.Columns.Add(FKParentParentKey);

FKParent.ReferencedTable = ParentTable ;

Можно было бы также задать конкретную схему, но таблица создана с применением лишь схемы, заданной по умолчанию, поэтому и данная таблица ссылается на эту схему. Таблица может быть создана с применением той схемы, которая по умолчанию задана для текущего пользователя

/* Следует отметить, что в этом коде можно было бы также определить ** некоторые другие свойства, наподобие действий CASCADE, но в целях ** упрощения примера этого решено не делать */

ChildTable.ForeignKeys.Add(FKParent); ChildTable.Create(); cn.Disconnect 0;

txtResult.Text = Tables Created ;

private void btnScript Click(object sender, EventArgs e)

Создание объекта сервера и подключение к нему ServerConnection cn = new ServerConnectionО; СП.LoginSecure = true;

Server svr = new Server(cn); svr.ConnectionContext.Connect();

Определение базы данных, в которой будет находиться таблица, ссылающаяся на рассматриваемую таблицу Database db = svr.Databases[ AdventureWorks ];

Получение ссылки на таблицу. Следует отметить, что схема фактически определяется вторым параметром, а не первым Table Employee = db.Tables[ Employee , HumanResources ];

Вызов метода Script. Проблема состоит в том, что он возвращает



1 ... 304 305 306 [ 307 ] 308 309 310 ... 346

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика