SQL验证属性 - 不同的数据类型

时间:2015-11-11 11:41:20

标签: sql sql-server tsql

我有一个表格,其中包含一系列代码的所有属性信息。属性代码设置为仅保存特定数据类型。这些包括存储列表中的数字,自由文本和下拉值。

我创建了一个包含所有属性代码及其允许值的表。我试图提出一个查询,根据验证表中的值验证每个代码的每个属性。

我试图远离游标,因为需要检查大量代码,而且我知道游标在大量行中执行速度不快。

数据表示例: enter image description here

验证表示例: enter image description here

您将从LIST数据类型中注意到它们具有相应的LIST_CODE并且允许LIST_VALUE。

1 个答案:

答案 0 :(得分:1)

当我再次阅读您的问题时,您可以执行以下操作:

  1. 在验证表中,您不需要NUMERIC_ATTR,FREE_TEXT_ATTR和FLOAT_ATTR
  2. 属性

    您只需将数据表中的列声明为int,nvarchar(300)和float。数据类型也是一个约束,SQL-Server注意只有值可以存储在数据类型允许的列中。

    您可以对属性0_OR_1执行相同的操作。只需使用数据表中的数据类型位即可。如果由于任何原因无法使用bit并使用tinyint,则可以添加CHECK CONSTRAINT以仅允许值0或1:

    java
    1. 为您的下拉列表使用外键约束 您可以创建ForeignKey-Constraint以仅存储下拉列表的允许值

      ALTER TABLE DataTable 添加约束FK_DropDownElements 外键(DROPDOWN_ATTR) 参考ValidationTable(LIST_VALUE);