小编SQL*_*ero的帖子

Row_GUID 列的用途是什么?

我一直在 AdventureWorks2012 数据库中挖掘并看到在几个表中使用的 Row_GUID。

我的问题有两个部分:

何时应该包含 Row_GUID 列?

Row_GUID 列的用途和好处是什么?

sql-server uuid

23
推荐指数
2
解决办法
2万
查看次数

我应该只依靠外键约束来处理错误吗?

我一直在使用以下模式来验证执行 INSERT 的存储过程的 FOREIGN KEY (FK) 参数:

CREATE PROC spCreateChildFoo
    @ForeignKey_Id int,
    @Attribute varchar(50)
AS

IF NOT EXISTS (SELECT ForeignKey_Id FROM ForeignTable WHERE ForeignKey_Id = @ForeignKey_Id)
    BEGIN
        RAISERROR ('The input ForeignKey_Id does not exist', 16, 1)
        RETURN;
    END

INSERT INTO ChildTable (ForeignKey_Id, Attribute)
VALUES (@ForeignKey_Id, @Attribute)
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我想在任何数据被 INSERT 之前在存储过程的执行早期捕获错误的 FK 条目,尤其是对于执行多个 INSERT 的过程。我还认为这是返回准确错误消息以简化调试的好方法。这种模式非常适合实现这两个目标。

问题

  • 这是浪费时间吗?

  • 更具体地说,我是否应该仅依靠 FK 约束来验证 FK 参数并在失败时回滚?

  • 随着数据库的增长,它最终会损害我的应用程序的性能吗?

foreign-key sql-server stored-procedures

6
推荐指数
1
解决办法
779
查看次数

标签 统计

sql-server ×2

foreign-key ×1

stored-procedures ×1

uuid ×1