sql - SQL 直接引用数据
问题描述
Microsoft SQL 中有没有一种方法可以根据表、列和记录来引用特定的数据项?
例如,表 A (COL1 INT, COL2 INT) 有 2 条记录 (1,2) 和 (3,4)。我可以通过引用以某种方式捕获值 4,而不是“4”吗?
目的是允许我创建一个审计方法,该方法可以指向(表、列、记录)中的特定值,而不必在我的审计表中复制该值(这可能很大,因此会增加我的数据库大小)。
我在想……就像 Object_Id 标识一个特定的 SQL 对象一样,这个引用(也许是某种 GUID?)也会标识一个特定的数据。
提前谢谢了。
解决方案
答案是否定的。在 MS SQL 中(据我所知,在其他流行的数据库中)没有对特定值的此类引用。此外,即使 MS SQL 中的表行也没有嵌入唯一标识符,除非您注意创建 IDENTITY 列。
您可以自己实现此类引用。例如,创建一个包含列的表
data_id,
table_name,
row_id,
column_name
并在每次需要参考时填写。然后你可以通过data_id引用一条数据。
但这不是一个好的解决方案。
- 在大多数情况下,此表中的单个条目将比引用的数据值本身消耗更多空间
- 要获取值,您仍然必须使用动态 sql
- 这仅适用于具有 IDENTITY 列并且所有表具有相同名称的表
- 等等
推荐阅读
- macos - 如何在 MacOS 捆绑应用程序中使用 C++ std::locale?
- flutter - 如何添加检查用户是否在文本字段中输入了某些内容?
- apache-spark - 限制 Apache Spark CPU 使用率
- c - 将参数中的 char 数组(字符串数组)的数组指针传递给 C 中的函数并调用该函数
- mips - MIPS 中的存储字 (sw) 指令是否同时依赖于 rt 和 rs 字段?
- xamarin - 标签的文本在网格内不断被切断,我怎样才能让它显示正确的大小而不是关闭?
- reactjs - 如何更好地管理redux store
- c# - 如何在 c# wpf 中将点击处理程序添加到动态创建的按钮(未创建对象)
- python - 是否有映射 int -> 元素的内置容器?
- python - 我如何包含来自 cx freeze python 的外部模块