使用SMO编写PARTIAL数据内容的脚本(仅限与WHERE子句匹配的行)

我使用SMO用SQL服务器数据库的数据填充SQL Compact数据库。

这是我实际使用的代码:

foreach(Table l_tblCurrent in l_dbDatabase.Tables) { if(l_tblCurrent.IsSystemObject) continue; ScriptingOptions l_scOptions = new ScriptingOptions(); l_scOptions.NoIdentities = true; l_scOptions.NoCollation = true; l_scOptions.NoCommandTerminator = true; l_scOptions.NoFileGroup = true; l_scOptions.ScriptSchema = true; l_scOptions.ScriptData = true; foreach(string l_strCurrent in l_tblCurrent.EnumScript(l_scOptions)) { l_sccDBFCommand.CommandText = l_strCurrent.Replace("[dbo].", ""); l_sccDBFCommand.ExecuteNonQuery(); } } 

它工作得很好,但对于几个表,我不想复制所有行。 我希望只能选择与要复制的WHERE子句相匹配的行。

可能吗 ?

看起来不像SMO支持WHERE子句或任何其他机制来限制记录数。 我建议的解决方法是创建一个包含记录子集的新表,编写脚本然后删除它。 一切都可以通过编程方式完成。