2017-05-10 50 views
0

我导入并将继续将不同来源的数据导入到sql server数据库中。另一个表中有一列的和逻辑检查应该与一个数额在5美元之间。我很难在导入时检查这个逻辑,因为有些数据会手动插入,有些数据是使用Excel VBA或python导入的。数据准确性对我来说非常重要。我想在插入数据后检查。我想到两个选择数据库数据使用Python进行完整性检查SqlAlchemy或Sql查询

  1. 用Python的SQLAlchemy和Python编写逻辑
  2. 创建一个存储过程或直接使用SQL来验证

会有什么VS存储过程的优点和SQLAlchemy的缺点数据检查?或其他解决方案?

在我脑海中的利益为SQLAlchemy的有自动地图:

  1. 可能的组合使用Jupyter为良好的用户界面
  2. 逻辑更容易编写,如循环一个表中各行应的另一个总和表中有些地方的条件。

效益为SQL存储过程

  1. 都可以在SQL Server Management Studio中
+0

正如问题所写,它非常接近于脱离主题的计算器,因为它专注于我们的观点。如果你问问SQLAlchemy vs存储过程对于数据检查的优点和缺点,那将是一个更好的问题。如果你举了一些你正在考虑的检查的例子,情况会更好。 –

回答

1

答案既不是管理。大多数RDBMS都内置了强制限制插入到行或列中的数据的机制。至于你说的

这是我很难导入时,因为一些数据 将手动插入检查这个逻辑,一些进口使用Excel VBA或Python。 数据准确性对我很重要

你不能在所有这些地方都有你的代码。什么适用于constraints

CHECK约束通过限制 被一个或多个列接受的值来强制域的完整性。可以创建一个CHECK约束 与任何逻辑(布尔)表达式返回TRUE或FALSE基于 所述逻辑运算符

可以存储过程使用的程序这一点,但限制是更有效的,透明的,更容易保持。

+0

有没有简单的方法来使用“约束”来跨越多个表。检查这[链接](http://stackoverflow.com/questions/28172719/how-to-enforce-a-check-constraint-across-multiple-tables)。另外,在数据插入期间,一些逻辑将被破坏,并且不适用。 –

+0

这在您的问题中没有提及。你用你的编程语言做的任何事情都不会被证明是愚蠢的。 – e4c5