小编Han*_*non的帖子

更改 SQL Server 中的分区列

我创建了一个包含 100 多万行的分区表,并datetime在创建表时不小心将错误的列指定为分区键。

是否有一种简单的方法可以将分区列从一datetime列更改为另一列。就我而言,我们有一个列InsertedDate和一个CompleteDate,我不小心使用了第一个而不是第二个。

sql-server partitioning sql-server-2012

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

双表 postgres 不返回时间戳

我正在尝试从本地 postgres 数据库双表中选择 now():

select now() from dual;
Run Code Online (Sandbox Code Playgroud)

它不返回任何行。只打印列名now(yyyy-MM-dd HH:mm:ss.ffffff)

我错过了什么无法获得系统时间?

postgresql timestamp select system-tables

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

删除查询不删除数据

我正在运行连接到 SQL Server 2012 数据库的 Web 服务。在短时间内(大约 5 秒)内执行多个删除查询时,实际执行的查询似乎是随机的。当一次运行一个或在每次执行之间放置 0.5 秒的延迟时,它们运行完美。

查看 SQL 分析器,所有查询都显示为RPC:Completed即使它们实际上并未删除表中的行。我检查了表,数据仍然存在,然后将查询从 Profiler 复制并粘贴到 SSMS 中,这影响了一行并将其删除。

所以我假设 Web 服务运行良好,问题出在它的数据库端。探查器中有没有办法查看查询是否成功?什么可能导致这实际上不影响行?

没有触发器。仅使用不同的参数运行相同的查询。只有数据通常是按顺序变化的。刚才没有其他查询在数据库上运行。

我添加了客户端站点日志记录,如果它删除该行,它实际上会返回 1,如果它不删除该行,它会返回 0。然而,即使它出现为 0,Profiler 也会显示它已经运行了查询,但似乎没有影响它。当我通过 SSMS 运行查询时,它确实会影响该行。

未收到来自 Web 服务的任何错误,并且查询通过 SSMS 运行良好。只有在快速连续多次运行时似乎不会删除。我确实同意它很可能针对不同的行,但是当它在 SSMS 中运行正常时看不到它是如何发生的。

表结构和查询

CREATE TABLE dbo.ContractDates2HumanAssets
(
    iContractDate2HumanAssetID int IDENTITY(1,1) NOT NULL,
    iContractDateID int NOT NULL,
    iHumanAssetID int NOT NULL,
    cCategory nvarchar(256) NOT NULL,
    cHR_x0020_ID nvarchar(256) NOT NULL,
    cCD_x0020_ID nvarchar(256) NOT NULL,
     CONSTRAINT PK_ContractDates2HumanAssets PRIMARY KEY CLUSTERED 
    (
        iContractDate2HumanAssetID ASC
    ) WITH (PAD_INDEX = …
Run Code Online (Sandbox Code Playgroud)

sql-server delete profiler

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

double (3,3) > 发送 1.3 > 存储 0.999

它让我震惊... MySQL DB

重量定义为 double (3,3)

INSERT INTO xxx (`weight`) VALUES ( 1.3)
Run Code Online (Sandbox Code Playgroud)

为什么数据库存储0.999

mysql

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

获取价格介于 100000 和 10000000 之间的所有数据

我有一个articles名为price.

当我的 Web 应用程序上的用户同时选择Price Min和 时Price Max,我需要执行如下查询:

$priceMin = 100000;
$priceMax = 10000000;

$query = 'SELECT * FROM articles WHERE price BETWEEN $priceMin AND $priceMax';
Run Code Online (Sandbox Code Playgroud)

然而,当所选择的Price Min is <= 100000Price Max is >= 10000000(10元),我没有与任何输出Price大于900000即使以上值的行900000确实存在。

该表定义如下:

CREATE TABLE articles ( 
 id int(11) NOT NULL AUTO_INCREMENT, 
 name varchar(100) NOT NULL, 
 price varchar(100) NOT NULL, 
 source varchar(255) NOT NULL, PRIMARY KEY (id) 
) ENGINE=InnoDB AUTO_INCREMENT=5 …
Run Code Online (Sandbox Code Playgroud)

mysql mysql-5.6

3
推荐指数
2
解决办法
151
查看次数

在 SQL Server 2005 中检索作业详细信息

如何检索有关针对 SQL Server 2005 上的数据库调度的 SQL Server 代理作业的信息?

sql-server-2005 sql-server

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

高效查询数据库以获取大量数据

这是我的查询

SELECT *
FROM
    (
        SELECT a.*, rownum rnum
        FROM
            (
                SELECT id, data
                FROM t
                ORDER BY id
            ) a
       WHERE rownum <= HIGHER
    )
WHERE rnum >= LOWER;
Run Code Online (Sandbox Code Playgroud)

我有大量数据,因此我一次获取其中的一部分,比如第一次尝试从 1 到 100,第二次尝试从 101 到 200,依此类推。

如果我执行上面的查询,它将对每个数据部分执行以下操作:

SELECT id, data
FROM t
ORDER BY id
Run Code Online (Sandbox Code Playgroud)

我认为对每个部分都这样做效率很低。我不能做一些像订购我的数据集并应用 rownum 之类的事情吗?它会有任何用处吗?

performance oracle query

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

如何在 SQL Server 中按字母数字代码排序

我有一个包含一些项目代码的表格。这些代码是

e.g.: B001, B002, Z15001, Z14001, P003,...
Run Code Online (Sandbox Code Playgroud)

我需要这个结果表:

Z15001
Z15002
...
B001
B002
...
C001
C002
...
Z14099
Z14098
Z14097
...
Z13099
Z13098
...
Z13001
Run Code Online (Sandbox Code Playgroud)

我试过了,但顺序不对。

select *
from table
order by
    case
        when Kod like 'Z15%' then 1
        when Kod like 'B%' then 2
        when Kod like 'C%' then 3
        when Kod like 'D%' then 4
        when Kod like 'E%' then 5 else 6 end asc, Kod asc
    , case when Kod NOT LIKE 'B%' 
        AND Kod NOT LIKE …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server order-by case

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

SQL Server 是否记录存储过程失败?

如何在 SQL Server Management Studio 2008 中查看给定时间范围内的存储过程错误列表?

sql-server-2008 sql-server t-sql

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

mysql 或 mariadb 是否有 SQL Server 索引的“包含列”的概念?

在 SQL Server 中,您可以创建一个索引并在该索引中包含其他列,这有助于在某些情况下提高性能。mysql 或 mariadb 是否可以以不同的名称使用相同的功能?我无法使用术语“包含的列”找到任何内容。

mysql mariadb index

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