Как изменить имя таблицы при скрипте таблицы из SQL Server SMO - PullRequest
0 голосов
/ 16 января 2009

Допустим, у меня есть таблица "foo", которую я хочу написать с помощью SMO. Есть ли способ сделать так, чтобы в сгенерированном скрипте таблица имела другое имя, например "foo2"?

Database db = sqlServer.Databases["testdb"];
Table foo = db.Tables["foo"];
foo.Name = "foo2";

Если я сделаю это, я получу это исключение при попытке установить foo.Name:

"Невозможно выполнить операцию с этим объектом, поскольку объект является членом коллекции."

Есть ли способ сделать это с SMO?

Ответы [ 3 ]

1 голос
/ 24 апреля 2012

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

foo.Name = "foo2";

вы получите то же сообщение об исключении в этой теме. Чтобы переименовать колонку, вам просто нужно перейти

foo.Rename("foo2");

Подробнее см. MSDN :

0 голосов
/ 11 декабря 2009

Вы можете создать новую таблицу в памяти с новым именем, а затем создать сценарий для этой таблицы.

Вы можете найти код для копирования таблицы на Копирование таблицы с помощью SMO

Вместо вызова Create () для новой таблицы вам нужно просто вызвать Script ().

0 голосов
/ 16 января 2009

Вы должны будете поместить вывод метода Script в строковую переменную и использовать Replace, чтобы подставить имя.

...