小编pro*_*ica的帖子

访问SQL以创建一对多关系而不强制参照完整性

我有这种关系.我必须暂时销毁它只是为了使用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)

我不需要强制参照完整性

sql ms-access constraints

12
推荐指数
1
解决办法
1012
查看次数

SQL Server 选择没有结果的变量

如果查询没有返回结果,我可以设置变量吗?

DECLARE @Output AS VARCHAR(MAX);

SELECT @Output = 'Old';
SELECT @Output = 'New' WHERE 0 = 1;

PRINT @Output;
Run Code Online (Sandbox Code Playgroud)

输出值为:

预期值为:NULL

sql t-sql sql-server

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

意外的SQL除法结果?

我使用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)

sql division sql-server-2008

2
推荐指数
1
解决办法
66
查看次数