小编Aar*_*nus的帖子

为什么表将其主键用作自身的外键

查看数据库,我遇到了一个表,该表使用其主键作为其自身的外键。

我已经看到一个表可以有一个自身的外键来构建层次结构,但它会使用另一列来引用主键。

由于主键是唯一的,在这种情况下,该行不是只能指向自身吗?这似乎是一个同义反复的链接,因为如果我已经有了该行,那么我已经有了该行。

有什么理由这样做吗?

连接到自身的表

我确信约束是这样写的(不仅仅是查看图表),因为相同的表和列用于定义的两半。

foreign-key sql-server primary-key

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

SQL Server 中以冒号开头的行

在处理 DB 项目时,Visual Studio 生成了一个包含以下几行的更改脚本:

GO
SET ANSI_NULLS, ANSI_PADDING --etc.;
SET NUMERIC_ROUNDABORT OFF;

GO
:setvar DatabaseName "Foo"
:setvar DefaultFilePrefix "Foo"
:setvar DefaultDataPath ""
:setvar DefaultLogPath ""

GO
:on error exit
GO

:setvar __IsSqlCmdEnabled "True"
GO
IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
    BEGIN
        PRINT N'SQLCMD mode must be enabled to successfully execute this script.';
        SET NOEXEC ON;
    END

GO
USE [$(DatabaseName)];

GO
CREATE NONCLUSTERED INDEX [SomeIndex]
    ON [dbo].[SomeTable]([SomeColumn] ASC);

GO
Run Code Online (Sandbox Code Playgroud)

行首的冒号有什么意义?这个 Stackoverflow 问题说冒号用于绑定变量,但是冒号有:on error exit什么作用呢?

sql-server syntax

5
推荐指数
1
解决办法
4565
查看次数

标签 统计

sql-server ×2

foreign-key ×1

primary-key ×1

syntax ×1