0

假设我有一个表“foo”,我想使用 SMO 编写脚本。有没有办法让生成的脚本中的表具有不同的名称,例如“foo2”?

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

如果这样做,当我尝试设置 foo.Name 时会出现此异常:

“无法对此对象执行操作,因为该对象是集合的成员。”

有没有办法用 SMO 做到这一点?

4

3 回答 3

1

对于像我这样试图了解如何使用 SMO 重命名列的人,如果您使用与上述相同的方法

foo.Name = "foo2";

您将在此线程中收到相同的异常消息。要重命名该列,您只需要去

foo.Rename("foo2");

有关详细信息,请参阅MSDN :

于 2012-04-24T02:24:10.170 回答
0

您可以使用新名称在内存中创建一个新表,然后编写该表的脚本。

您可以在使用 SMO复制表格中找到复制表格的代码

无需在新表上调用 Create(),您只需调用 Script()。

于 2009-12-11T11:56:14.793 回答
0

您必须将 Script 方法的输出放入字符串变量并使用 Replace 替换名称。

于 2009-01-16T19:09:15.173 回答