sql - 是否可以在 SQL Server View 中创建一个唯一 ID,该 ID 在每次调用 View 时都保持不变?

标签 sql sql-server view uniqueidentifier

我有 10 个表,我将它们连接在一起以创建 View 。我只从每个表中选择 ID,但在 View 中,每个 ID 可以显示多次,但所有 ID 的组合始终是唯一的。有没有办法在此 View 中创建另一列作为唯一 ID?

我希望能够存储唯一 ID 并使用它来查询 View ,以获得所有其他 ID。

最佳答案

我遇到了类似的问题,我需要跨多个表建立层次结构。如果您使用整数作为每个表中的 id,则只需将每个表的 id 转换为 varchar,并为每个表添加不同的字母作为前缀。例如

创建 View 位置层次结构为

SELECT 'C' + CONVERT(VARCHAR,[Id]) 作为 Id
      ,[姓名]
      ,'S' + CONVERT(VARCHAR,[State]) 作为父级
  从 [城市]
  联盟
  SELECT 'S' + CONVERT(VARCHAR,[Id]) 作为 Id
      ,[姓名]
      ,'C' + CONVERT(VARCHAR,[Suburb]) 作为父级
  从[郊区]

此解决方案的有效性将取决于您的数据集有多大。

关于sql - 是否可以在 SQL Server View 中创建一个唯一 ID,该 ID 在每次调用 View 时都保持不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1842537/

相关文章:

asp.net - 有哪些优秀的 SQL Server 2008 w/ASP.NET 网站托管提供商?

java - Android java将两个相似的for循环合并为一个循环

sql - 如何显示查询结果计数

sql - 一对一左连接

mysql - 随机连接3个表中的记录

SQL 父子树按深度和显示顺序排序

c++ - 带有使用 QAbstractTableModel 子类的 Qt 小部件的 MVC

sql - 加入父表和子表的最佳方式

SQL,将同一行中的两列相乘并创建一个 "total"列

mysql - 难以猜测的 SQL 数据库表名和列名是否有助于防止 SQL 注入(inject)?