我有这种关系.我必须暂时销毁它只是为了使用SQL命令更改"salID"字段的大小:
ALTER TABLE Adressen DROP CONSTRAINT [ChildTableMainTable]
Run Code Online (Sandbox Code Playgroud)

如何使用SQL命令重新创建相同的关系类型?如果我使用下一个SQL,我会得到一对多的关系.这不是我需要的:
ALTER TABLE MainTable ADD CONSTRAINT [ChildTableMainTable] FOREIGN KEY (salID) REFERENCES [ChildTable] (ChildPK);
Run Code Online (Sandbox Code Playgroud)

如果查询没有返回结果,我可以设置变量吗?
DECLARE @Output AS VARCHAR(MAX);
SELECT @Output = 'Old';
SELECT @Output = 'New' WHERE 0 = 1;
PRINT @Output;
Run Code Online (Sandbox Code Playgroud)
输出值为:旧
预期值为:NULL
我使用SQL Server.
与分部合作我在这两个您可以使用SQL Server版本重现的查询中收集了我的发现.
我希望Division with Integer在这两种情况下具有相同的值.因为无论我的表中的值如何,如果我得到意想不到的结果,我最终会得到一个逻辑错误,有时很难调查.
SQL A:
WITH s AS (
    SELECT 'Integer' AS c, 1 AS k UNION
    SELECT 'Float', 1 UNION
    SELECT 'NULL', NULL
) 
SELECT 
    c AS [Type],
    k/10 AS                          'Division',
    CAST(k as numeric(38,4))/10 AS 'Cast',
    COALESCE(k, 0)/10           AS 'Coalesce',
    COALESCE(k, .0)/10          AS 'Coalesce with float'
FROM s; 
Run Code Online (Sandbox Code Playgroud)
结果A.
Type        Division    Cast        Coalesce    Coalesce with float
Float       0           0.100000    0           0.100000
Integer     0           0.100000    0           0.100000
NULL        NULL        NULL        0           0.000000
Run Code Online (Sandbox Code Playgroud)
SQL B:
WITH s …Run Code Online (Sandbox Code Playgroud)