从SQL Server SMO脚本表时如何更改表名

时间:2009-01-16 18:45:44

标签: sql-server smo

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

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

如果我这样做,当我尝试设置foo.Name:

时会出现此异常

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

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

3 个答案:

答案 0 :(得分:1)

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

foo.Name = "foo2";

您将在此主题中获得相同的异常消息。要重命名该列,您只需要去

foo.Rename("foo2");

有关详细信息,请参阅MSDN

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

您可以在Copying a table using SMO

找到要复制表格的代码

不需要在新表上调用Create(),而只需调用Script()。