Tag: sql

SET NOCOUNT ON用法

受到SET NOCOUNT有不同观点的这个问题的启发… 我们应该使用SQL Server的SET NOCOUNT ON吗? 如果没有,为什么不呢? 它的作用编辑6,2011年7月22日 它抑制任何DML之后的“xx rows affected”消息。 这是一个结果集,当发送时,客户端必须处理它。 它很小,但是可以测量(见下面的答案) 对于触发器等,客户端将收到多个“受影响的xx行”,这会导致一些ORM,MS Access,JPA等所有错误的方式(见下面的编辑) 背景: 一般接受的最佳实践(我认为,直到这个问题)是在SQL Server中的触发器和存储过程中使用SET NOCOUNT ON 。 我们在任何地方都使用它,并且快速的谷歌显示了许多SQL Server MVP也同意。 MSDN说这可以打破.net SQLDataAdapter 。 现在,这意味着SQLDataAdapter仅限于完全简单的CRUD处理,因为它期望“n行受影响”消息匹配。 所以,我不能使用: 如果存在,以避免重复(不受行影响的消息) 注意:谨慎使用 不存在(更less行然后预期 过滤出微不足道的更新(例如,实际上没有数据发生变化) 做任何表访问之前(如日志logging) 隐藏复杂性或denormlisation 等等 在marc_s(谁知道他的SQL的东西)的问题说,不要使用它。 这与我认为的不同(我也认为我自己在SQL方面也有点胜任)。 有可能我错过了一些东西(随便指出一些明显的东西),但是你们有什么想法呢? 注意:我看到这个错误已经有好几年了,因为我现在不使用SQLDataAdapter。 评论和问题后编辑: 编辑:更多的想法… 我们有多个客户端:一个可以使用C#SQLDataAdaptor,另一个可以使用Java的nHibernate。 SET NOCOUNT ON可能会以不同的方式影响这些SET NOCOUNT ON 。 如果你把存储过程看作是方法,那么为了你自己的目的,假定某些内部处理以某种方式工作,这是坏forms(反模式)。 编辑2: 触发打破nHibernate问题 ,其中SET NOCOUNT ON不能设置 […]

实体属性值数据库与严格的关系模型电子商务

可以肯定地说, EAV / CR数据库模型是不好的。 这就是说, 问题: 应该使用哪种数据库模型,技术或模式来处理描述可以在运行时更改的电子商务产品的属性“类”? 在一个好的电子商务数据库中,你将存储选项类(如电视分辨率,然后有一个分辨率为每个电视,但下一个产品可能不是电视,没有“电视分辨率”)。 你如何存储它们,有效地search,并允许你的用户设置产品types与variables领域描述他们的产品? 如果search引擎发现客户通常根据控制台深度search电视,则可以将控制台深度添加到您的字段,然后在运行时为每个电视产品types添加一个深度。 好电子商务应用程序中有一个很好的共同特点,他们展示了一组产品,然后有“深入”的侧面菜单,您可以看到“电视分辨率”作为标题,前五个最常见的电视分辨率发现集合。 您单击一个,它只显示该分辨率的电视机,允许您通过在侧面菜单上select其他类别进一步深入查看。 这些选项将是运行时添加的dynamic产品属性。 进一步讨论: 长话短说, 互联网上有什么链接或模型描述,可以“学术上”修复以下设置? 我感谢诺埃尔·肯尼迪提出了一个类别表,但是这个需求可能会比这个更大。 我在下面用不同的方式描述它,试图突出重要性。 我可能需要一个观点更正来解决这个问题,否则我可能需要深入到EAV / CR。 喜欢对EAV / CR模型的正面回应。 我的开发人员都说杰弗里·肯普(Jeffrey Kemp)在下面提到过:“新实体必须由专业人员来build模和devise”(脱离上下文,阅读他的回答)。 问题是: 实体每周添加和删除属性 (search关键字决定未来的属性) 新的实体每周到达 (产品由部件组装而成) 旧的实体每周都会消失 (存档,不太受欢迎,季节性) 客户想要为产品添加属性有两个原因: 部门/关键字search/同类产品之间的比较图表 消费者产品configuration之前结帐 这些属性必须有意义,而不仅仅是关键字search。 如果想要比较所有有“奶油糖霜”的蛋糕,可以点击蛋糕,点击生日主题,点击奶油糖霜,然后检查所有有趣的蛋糕,知道他们都有奶油糖霜。 这不是特定的蛋糕,只是一个例子。

select* vsselect列

如果我只需要2/3列,我查询SELECT *而不是在select查询中提供这些列。 有更多/更less的I / O或内存有任何性能下降? networking开销可能会出现,如果我select*没有需要。 但是在select操作中,数据库引擎是否总是从磁盘中提取primefaces元组? 或者只拉取select操作中请求的那些列。 如果它总是拉一个元组,那么I / O开销是相同的。 与此同时。 从元组中删除请求的列可能会消耗内存。 如果它拉出一个元组。 所以,如果是这样的话selectsomeColumn将有更多的内存开销比select*

按照SQL IN()子句中的值的顺序sorting

我想知道如果有一个IN()子句中的值的顺序sorting(可能更好的方法)。 问题是,我有2个查询,一个获取所有的ID和第二个检索所有的信息。 第一个创build我希望第二个sorting的ID的顺序。 这些ID以正确的顺序放在IN()子句中。 所以它会是(非常简化)的东西: SELECT id FROM table1 WHERE … ORDER BY display_order, name SELECT name, description, … WHERE id IN ([id's from first]) 问题是第二个查询不会返回结果以相同的顺序将ID放入IN()子句中。 我find的一个解决scheme是将所有的ID放入一个临时表中,然后将自动递增字段join到第二个查询中。 有更好的select吗? 注意:由于第一个查询是由“用户”运行的,第二个查询是在后台进程中运行的,因此无法使用子查询将2合并为1查询。 我正在使用MySQL,但是我认为注意其他数据库有什么选项也许是有用的。

SQL Server中的行偏移

SQL Server中有没有办法从给定的偏移量开始获取结果? 例如,在另一种types的SQL数据库中,可以这样做: SELECT * FROM MyTable OFFSET 50 LIMIT 25 得到结果51-75。 此构造似乎不存在于SQL Server中。 我怎么能不加载所有我不关心的行呢? 谢谢!

如何使用GROUP BY连接MySQL中的string?

基本上问题是如何得到这个: IDstring 1 A 1 B 2 C 对此: IDstring 1 AB 2 C

SQL离开连接与FROM行上的多个表?

大多数SQL方言接受以下查询: SELECT a.foo, b.foo FROM a, b WHERE ax = bx SELECT a.foo, b.foo FROM a LEFT JOIN b ON ax = bx 现在显然,当你需要一个外连接时,第二个语法是必需的。 但是,当做一个内部连接,为什么我应该更喜欢第二个语法的第一个(反之亦然)?

Hibernate显示真正的SQL

如果我设置 <property name="show_sql">true</property> 在我的控制台的hibernate.cfg.xmlconfiguration文件中,我可以看到SQL。 但这不是真正的 SQL …我可以看到将直接传递到数据库的SQL代码吗? 例: 我懂了 select this_.code from true.employee this_ where this_.code=? 我可以看吗 select employee.code from employee where employee.code=12 真正的 SQL?

SQL Server的LIMIT和OFFSET的等价物?

在PostgreSQL里有Limit和Offset关键字,这样可以非常方便地对结果集进行分页。 什么是Sql Server的等效语法?

JSF中的CSRF,XSS和SQL注入攻击防护

我有一个基于JSF的Web应用程序,以MySQL作为数据库。 我已经在我的应用程序中实现了防止CSRF的代码。 现在,由于我的底层框架是JSF,我想我不必处理XSS攻击,因为它已经由UIComponent处理。 我没有在任何视图页面中使用任何JavaScript。 即使我使用,我真的需要执行代码来防止XSS攻击? 对于数据库,我们在所有的数据库交互中都使用准备好的语句和存储过程 还有什么需要处理,以防止这3种常见的攻击? 我已经通过OWASP网站和他们的作弊表 。 我需要照顾任何其他潜在的攻击媒介吗?