小编Thi*_*zig的帖子

将DateTime数据库字段设置为"Now"

在VB.net代码中,我使用SQL参数创建请求.我将DateTime参数设置为DateTime.Now值,我的请求会是什么样的?

UPDATE table SET date = "2010/12/20 10:25:00";
Run Code Online (Sandbox Code Playgroud)

要么

UPDATE table SET date = GETDATE();
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,我确信每条记录都将设置为完全相同的时间.在第二种情况下,它取决于DBMS如何处理请求.这引出了我的第二个问题:SQL Server在使用NOW()更新大表时是否设置了相同的日期和时间?

编辑:由GETDATE()替换NOW()(在SQL Server中不存在).

vb.net sql-server

85
推荐指数
3
解决办法
24万
查看次数

如何插入显式值和从另一个表检索的数据的混合

我知道两种方法将数据插入表中

方法1:显式值

INSERT INTO table
('field1', 'field2', 'field3')
VALUES ('value1', 'value2', 'value3')
Run Code Online (Sandbox Code Playgroud)

方法2:从另一个表复制数据

INSERT INTO table
SELECT 'field1', 'field2', 'field3'
FROM otherTable
Run Code Online (Sandbox Code Playgroud)

两者都只有在所有字段以相同方式填充时才起作用.我需要在同一行中插入显式值和复制数据的混合.这可能吗?

sql sql-server

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

使用相同CTE的两次更新

我必须在树枝中"删除"文件夹(已将标记为已删除,我更改了标记的值).每个文件夹都可以包含文件或文件夹(存储在不同的表中).我有一个CTE,它定义了所有需要更新的文件夹.

 WITH arbre(id) AS(
     SELECT idDossier
     FROM portail_managers_dossier
     WHERE idDossier = @id
     UNION ALL
     SELECT d.idDossier
     FROM portail_managers_dossier AS d
     INNER JOIN arbre AS a
     ON a.id = d.idParent)
Run Code Online (Sandbox Code Playgroud)

然后我有两个UPDATE请求,每个表一个

 UPDATE portail_managers_dossier
 SET dtDateSuppr = NULL
 WHERE idDossier IN (SELECT id FROM arbre);


 UPDATE portail_managers_document
 SET dtDateSuppr = NULL
 WHERE idDossier IN (SELECT id FROM arbre);
Run Code Online (Sandbox Code Playgroud)

我的问题是:我不知道如何在不同的表上合并两个UPDATE请求.CTE仅存在于请求结束之前,因此我必须将其定义两次.有没有办法在单个请求中编写上述所有代码?

sql-server

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

以非数字顺序排序

我正在尝试以非字母数字顺序排序查询结果.例如,如果列的可能值为"1","2"和"3".ORDER BY asc将首先显示带'1'的行,然后显示带'2'的行,最后显示带'3'的行.ORDER BY desc会做对手.

如果我想要一个不同的订单,例如3,1,2或1,3,2,该怎么办?那可能吗 ?

谢谢

sql

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

标签 统计

sql-server ×3

sql ×2

vb.net ×1