当前位置: 首页 > 面试题库 >

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

公良俊楚
2023-03-14
问题内容

我使用SMO将SQL Server数据库的数据填充到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子句或任何其他限制记录数量的机制。我建议的解决方法是创建一个包含记录子集的新表,对其进行脚本编写,然后将其删除。一切都可以通过编程来完成。



 类似资料:
  • 问题内容: 我正在为FAQ列表编写一些非常简单的搜索功能。我正在将搜索字符串拆分为各种字符,包括空格。然后根据以下内容执行选择 我不得不对其进行稍微的编辑,使其由我们的数据访问层生成,但是它应该使您对发生的事情有所了解。 上面的查询很好地说明了这个问题,因为大多数问题中可能都包含单词a或is,但是我无法将其过滤掉,因为首字母缩略词对搜索者而言很重要。建议的是,我们根据匹配关键字的数量进行排序。但是

  • 数据库:Sybase Advantage 11 在我对数据进行规范化的过程中,我试图删除从以下语句中得到的结果:

  • 问题内容: 我正在使用C#代码生成sql数据库脚本。 以下代码可以正常工作,但是当我尝试使用它时,将引发以下异常。 Microsoft.SqlServer.Smo.dll中发生了类型为“ Microsoft.SqlServer.Management.Smo.FailedOperationException”的未处理异常 附加信息:此方法不支持脚本数据。 代码 问题答案: 对以下内容进行了测试: W

  • 问题内容: 我有一个查询,看起来像这样: 我需要能够在IN子句中对列表进行参数化,以将其写为JDBC PreparedStatement。该列表中可以包含任意数量的名称。 是执行此操作的正确方法: 然后建立一个参数列表?还是有更好(更正确)的方法来做到这一点? 问题答案: 简而言之,您不能开箱即用。但是,使用Spring,您可以做自己想做的事情。请参阅如何通过Spring JdbcTemplate

  • 问题内容: 我有一个很长的查询,本质上是以下内容的扩展: 完成后,其中的where子句将有约40行。为了使此任务更容易,我希望做与以下类似的事情: 不幸的是,lease_id不是唯一字段,同一个suite_id可以有多个lease_id(因此,第二个查询不可用)。 鉴于此解决方案无法正常工作,是否有更好的方法来执行第一条更新语句? 问题答案: 您可以创建表类型并通过它传递值,如下所示: 如果您使用