2009-01-16 67 views
0

假设我有一个表“foo”,我想使用SMO脚本编写出来。有没有办法让它在生成的脚本中具有不同的名称,如“foo2”?如何在从SQL Server SMO脚本表中更改表名称

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

如果我这样做,我当我尝试设置foo.Name得到此异常:

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

有什么办法可以用SMO来做到这一点吗?

回答

0

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

+0

似乎有风险的,因为表的名称可能是其他物体(列等) – wnka 2009-01-16 21:29:45

0

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

您可以在Copying a table using SMO

发现代码复制表而不是呼吁新表创建()的,则需要简单地调用脚本()。

1

对于我这样的人谁是试图找出如何重命名使用SMO列,如果你用同样的方法如上

foo.Name = "foo2"; 

你会得到这个线程相同的异常信息。要重命名列,您只需要去

foo.Rename("foo2"); 

详情请参阅MSDN

相关问题