代码之家  ›  专栏  ›  技术社区  ›  Mesh

visualstudio中自动生成sql查询的质量

  •  0
  • Mesh  · 技术社区  · 16 年前

    DELETE [tablename] where [PK] = @param
    

    但是它生成了一个包含4个ORs的查询。

    DELETE FROM Market
    WHERE     (@IsNull_Name = 1) 
    AND (Name IS NULL) 
    AND (@IsNull_Description = 1) 
    AND (Description IS NULL) 
    AND (MarketId = @Original_MarketId) 
    OR
    (@IsNull_Name = 1) 
    AND (Name IS NULL) 
    AND (Description = @Original_Description) 
    AND (MarketId = @Original_MarketId) 
    OR
    (Name = @Original_Name) 
    AND (@IsNull_Description = 1) 
    AND (Description IS NULL) 
    AND (MarketId = @Original_MarketId) 
    OR
    (Name = @Original_Name) 
    AND (Description = @Original_Description) 
    AND (MarketId = @Original_MarketId)
    

    数据集工具几乎坚持要有涉及PK/索引的查询为什么它会生成如此复杂的代码?

    这是“最佳实践”代码吗?如果是,有人能给我一些文档吗?

    当然,最简单的情况是99%的代码是必需的,另外1%应该是您需要编辑自动生成的代码或添加我们自己的代码的次数。

    1 回复  |  直到 16 年前
        1
  •  1
  •   cjk    16 年前

    这是基于乐观并发性的—在执行删除操作之前,需要检查所有值是否相同。