SQL Server 2008在.Net中使用索引克隆表
为表1及其所有索引在同一数据库中创建精确结构副本的最简单方法是什么。比如说Table1Dupl,其中Table1中的所有约束/索引都带有后缀Dupl。SQL Server 2008在.Net中使用索引克隆表,.net,tsql,sql-server-2008,smo,.net,Tsql,Sql Server 2008,Smo,为表1及其所有索引在同一数据库中创建精确结构副本的最简单方法是什么。比如说Table1Dupl,其中Table1中的所有约束/索引都带有后缀Dupl。 我知道我可以从Management Studio将“脚本表”手动重命名为“创建到”,但要寻找完全编程的方式。编程的方式是查询列、索引、外键和触发器,构建脚本并对目标数据库执行。对于列和外键,您可以查看信息\u架构视图。对于索引,请调查sys.sysindex和sys.index\u列目录视图。对于触发器,请查看sys.systriggers目录视
我知道我可以从Management Studio将“脚本表”手动重命名为“创建到”,但要寻找完全编程的方式。编程的方式是查询列、索引、外键和触发器,构建脚本并对目标数据库执行。对于列和外键,您可以查看
信息\u架构
视图。对于索引,请调查sys.sysindex
和sys.index\u列
目录视图。对于触发器,请查看sys.systriggers
目录视图。另一种帮助方法是在展开表的索引列表或编写索引脚本时运行SQL Server Profiler,以查看query Management Studio用于获取该信息的内容。编程方式是查询列、索引、外键和触发器,生成脚本并对目标数据库执行。对于列和外键,您可以查看信息\u架构
视图。对于索引,请调查sys.sysindex
和sys.index\u列
目录视图。对于触发器,请查看sys.systriggers
目录视图。另一种帮助方法是在展开表的索引列表或编写索引脚本以查看query Management Studio用于获取该信息的内容时运行SQL Server Profiler。您可以进行调查
编辑但我看到您已将问题标记为“smo”,所以我想您知道这一点
或者,如果您想避免依赖,您可以在这里看到。您可以进行调查
编辑但我看到您已将问题标记为“smo”,所以我想您知道这一点
或者,如果您希望避免依赖于此,您可以在此处看到。使用SMO获取对您的表的引用。
一旦有了此引用,只需使用ScriptOptions指定要编写的脚本即可。
编写脚本后,您将拥有一个包含所用文本的StringCollection,与执行“脚本表为”时的显示完全相同。
因为这是内存中的文本,所以可以进行简单的搜索和替换
Microsoft.SqlServer.Management.Smo.Table oSmo;
Microsoft.SqlServer.Management.Smo.ScriptingOptions oScriptingOptions
= new Microsoft.SqlServer.Management.Smo.ScriptingOptions();
oScriptingOptions.Triggers = true;
StringCollection myStrColl = new StringCollection();
myStrColl = oSmo.Script(oScriptingOptions);
使用SMO获取表的引用。
一旦有了此引用,只需使用ScriptOptions指定要编写的脚本即可。
编写脚本后,您将拥有一个包含所用文本的StringCollection,与执行“脚本表为”时的显示完全相同。
因为这是内存中的文本,所以可以进行简单的搜索和替换
Microsoft.SqlServer.Management.Smo.Table oSmo;
Microsoft.SqlServer.Management.Smo.ScriptingOptions oScriptingOptions
= new Microsoft.SqlServer.Management.Smo.ScriptingOptions();
oScriptingOptions.Triggers = true;
StringCollection myStrColl = new StringCollection();
myStrColl = oSmo.Script(oScriptingOptions);