代码之家  ›  专栏  ›  技术社区  ›  robertc

我可以从表值函数返回外键列吗?

  •  0
  • robertc  · 技术社区  · 15 年前

    我希望使用表值函数并从多个存储过程中调用它,而不是在所有存储过程中重复相同的查询,但是为了与旧的vb6/ultragrid应用程序兼容,我需要保留原始表中的外键引用。

    在表值函数中,我可以指定 PRIMARY KEY ,但是否有指定“外键”的方法?我试图这样修改返回表,但得到一个语法错误:

    ALTER TABLE @ReturnTable  
    WITH CHECK ADD  CONSTRAINT [FK_ReturnTable_OtherTable]
    FOREIGN KEY([OtherTableID])
    REFERENCES [dbo].[OtherTable] ([OtherTableID])
    
    2 回复  |  直到 15 年前
        1
  •  2
  •   KM.    15 年前

    不,你不能。函数返回一个只在运行时存在的“虚拟”表,并且没有办法fk到这样一组假想的/暂时的行。在不知道您的模式和您正试图完成的具体任务的情况下,我猜应该是尝试使用触发器来强制执行这一点。

        2
  •  1
  •   JamWheel    15 年前

    您的传统网格会通过视图看到FK关系吗?或者查询无法存储为视图?