【问题标题】:Adding in a primary key to an SQL view将主键添加到 SQL 视图
【发布时间】:2013-04-05 22:39:27
【问题描述】:

我在 SQL Server 数据库中创建了一个视图,它只是两个表的连接。

有什么方法可以将唯一的主键插入此视图的行中...或者我不确定如何将列名之一指定为主键...有什么想法吗?

谢谢

【问题讨论】:

  • 什么样的钥匙?您可以使用row_number() 为每一行生成一个唯一编号。
  • 因为它取决于两个连接表的内容,不是真的。您可以根据这些表的内容创建唯一标识符(连接两个 id)
  • 可以是任何类型...只要一个整数就可以了。
  • 我在哪里可以说这是主键?
  • 您对这个主键有什么要求?它需要稳定吗? (即,如果从一个或其他表中删除一行,是否所有主键值都需要保持以前观察到的状态?)您的实际目标问题 在这里?

标签: sql sql-server tsql


【解决方案1】:

您必须创建物化(索引)视图才能添加唯一索引。但不能创建 PK 约束。

CREATE VIEW v_test
WITH SCHEMABINDING --optional
AS
    SELECT id from table

GO

CREATE UNIQUE CLUSTERED INDEX idx_id
    ON v_test (id)
GO

【讨论】:

  • 我尝试相同,但实际表的主键不能作为主键敌人视图表。
猜你喜欢
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-17
  • 1970-01-01
  • 1970-01-01
  • 2011-06-15
相关资源
最近更新 更多