Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server 2008在.Net中使用索引克隆表_.net_Tsql_Sql Server 2008_Smo - Fatal编程技术网

SQL Server 2008在.Net中使用索引克隆表

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目录视

表1及其所有索引在同一数据库中创建精确结构副本的最简单方法是什么。比如说Table1Dupl,其中Table1中的所有约束/索引都带有后缀Dupl
我知道我可以从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);