小编use*_*665的帖子

使用不同语言的不同SQL Server的声明

我将一个SQL语句插入到表中的两个日期,但我在具有不同SQL Server和设置语言的不同机器上使用它.有时'2017-01-04 00:00:00'是2017年4月1日,有时是2017年1月4日.我想要4月01日.

INSERT INTO [table] ([id], [value], [datefrom], [dateto])
    SELECT
        NEWID(), 3.5, '2017-01-04 00:00:00', '2027-01-05 00:00:00'
    FROM 
        [settings]
Run Code Online (Sandbox Code Playgroud)

我可以SET LANGUAGE german;在脚本的开头使用,这个设置只对语句是临时的,不会永久改变语言吗?或者这不是一个好方法吗?请参阅下面的二手声明 提前致谢.

SET LANGUAGE german;

INSERT INTO [table]([id], [value], [datefrom], [dateto])
    SELECT
        NEWID(), 3.5, '2017-01-04 00:00:00', '2027-01-05 00:00:00'
    FROM 
        [settings]
Run Code Online (Sandbox Code Playgroud)

sql sql-server date

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

DELETE语句与REFERENCE约束冲突

我收到了错误

DELETE语句与REFERENCE约束FK_DocYDocument1冲突 - 表DocYDocument,列SubDocID - 语句:DELETE FROM DOCUMENT WHERE(ID =?)参数:'D7FAA3CF ...'

表DocYDocument包含列

PK ID, FK DocID and FK SubDocID. 
And the keys PK_DocYDocument, FK_DocYDocument and FK_DocYDocument1.
Run Code Online (Sandbox Code Playgroud)

FK_DocYDocument1外键列是SubDocID,FK_DocYDocument外键列是DocID.

数据库设计有问题还是我要在程序中查找错误?

sql sql-server

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

使用WHERE的SQL UPDATE SELECT

我想UPDATE在表中的一列,但在每一行中,必须WHERE有另一行依赖于另一个值。

这是表格的样子。

BusinessUnitGUID | 类名| 默认GUID

    5        | PriceList | 349FDAFD34M
    5        | Footer1   | 987IOXG376L
    5        | Header1   | 12WQX954MIO
    7        | PriceList | NULL
    7        | Footer1   | NULL
    7        | Header1   | NULL
Run Code Online (Sandbox Code Playgroud)

结果应该是这样。

BusinessUnitGUID | 类名| 默认GUID

    5        | PriceList | 349FDAFD34M
    5        | Footer1   | 987IOXG376L
    5        | Header1   | 12WQX954MIO
    7        | PriceList | 349FDAFD34M
    7        | Footer1   | 987IOXG376L
    7        | Header1   | 12WQX954MIO
Run Code Online (Sandbox Code Playgroud)

但是此显示的查询不起作用,因为它返回许多行,因此并不精确。

update cSC_BusinessUnit
set defaultguid …
Run Code Online (Sandbox Code Playgroud)

sql sql-server select where

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

具有 NOT IN 和 WHERE 关系的 SQL 查询与 GUID

有两个表DocumentDocumentPos。在Document有列GUID和在DocumentPosDocumentGUID指表的列Document

我想让每一行都在DocumentPosDocumentGUID现在的行中Documents' GUID

我有这个返回 0 行的查询:

select *
FROM             Document d,
                 DocumentPos dp
WHERE            d.GUID = dp.DocumentGUID
AND              dp.DocumentGUID NOT IN (
                 SELECT d.GUID
                 FROM Document
)
Run Code Online (Sandbox Code Playgroud)

但是当我执行select * from documentpos它时,例如返回一行DocumentGUID= B479BCB72334424DAC1B7CC26880DAB8。这DocumentGUIDNOT INDocument作为GUID.

select * from Document where GUID = 'B479BCB72334424DAC1B7CC26880DAB8'返回 0 行。

我想像这样构建查询,因为它应该成为一个DELETE …

sql sql-server subquery sql-delete sql-null

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

标签 统计

sql ×4

sql-server ×4

date ×1

select ×1

sql-delete ×1

sql-null ×1

subquery ×1

where ×1