SQL直接引用数据

时间:2018-10-26 11:15:28

标签: sql sql-server

Microsoft SQL中是否有一种方法可以基于表,列和记录来引用特定的数据项?

例如,表A(COL1 INT,COL2 INT)具有2条记录(1,2)和(3,4)。我能否以某种方式通过引用而不是“ 4”来捕获值4?

目的是允许我创建一个审核方法,该方法可以指向(表,列,记录)中的特定值,而不必在我的审核表中重复该值(该值可能很大,因此会膨胀数据库大小) )。

我在想...就像Object_Id标识一个特定的SQL对象一样,此引用(也许是某种GUID)可能标识特定的数据。

非常感谢。

1 个答案:

答案 0 :(得分:0)

答案是否定的。在MS SQL中(据我所知,在其他流行的数据库中),没有这样的对特定值的引用。 此外,除非您小心创建IDENTITY列,否则即使MS SQL中的表行也没有嵌入的唯一标识符。

您可以自己实现这些引用。例如,创建带有列的表

data_id,
table_name,
row_id,
column_name

,并在每次需要参考时填写。然后,您可以通过data_id引用数据。

但这不是一个好的解决方案。

  • 在大多数情况下,此表中的单个条目将占用更多空间 比参考数据值本身
  • 要获取值,您仍然必须使用动态sql
  • 这仅适用于具有IDENTITY列的表 所有表的名称相同
  • 依此类推