小编Jam*_*oat的帖子

SQL Server 数据库卡在恢复状态

我有一个 Sharepoint 服务器。我们的备份工具出现问题,现在我的一些数据库卡在恢复状态!

显示还原数据库的图像

是否可以停止恢复过程?还有,我怎样才能确保数据库的完整性没有受到损害?

sql-server sql-server-2008-r2 sql-server-2012

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

授予运行 SQL 服务器作业的权限

我在 MSSQL Server 2005 上有一份工作,我想允许任何数据库用户运行。

我不担心安全性,因为作业实际工作的输入来自数据库表。只是运行作业,而不向该表添加记录将什么都不做。

我只是找不到如何授予这项工作的公共权限。

有没有办法做到这一点?在这一点上我唯一能想到的就是让工作不断地运行(或按计划),但因为它只需要很少(可能每几个月一次)做任何实际工作,而且我确实希望工作是一旦存在就完成,这似乎不是最佳解决方案。

sql-server-2005 security sql-server permissions

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

哪个更快加入

哪个更快

SELECT * FROM X INNER JOIN Y ON x.Record_ID = y.ForignKey_NotIndexed_NotUnique
Run Code Online (Sandbox Code Playgroud)

或者

SELECT * FROM X INNER JOIN Y ON y.ForignKey_NotIndexed_NotUnique = x.Record_ID
Run Code Online (Sandbox Code Playgroud)

performance join sql-server optimization

12
推荐指数
2
解决办法
343
查看次数

SQL Server - 可能发生多少种类型的超时,以及如何发生?

使用 SQL Server 时,可以有多个应用程序主机访问它,每个应用程序可以有一个或多个连接。每个连接都可能有多个事务(如果我错了,请纠正我)。每个事务都可以执行查询或非查询 SQL。

根据我的经验,如果我查询一个被独占锁定的表,我很容易遇到超时。如果两个不同的应用程序锁定同一资源,我还看到 SQL Server 检测并抛出死锁异常而不是超时。我还显示了重建索引超时,这可能是由于有人仍然连接到表。

但是,我也遇到了一种死锁,SQL Server 没有检测到它或超时。在这个应用程序中,它打开了两个连接,两个独立的事务,其中第一个事务锁定了一个资源,第二个事务尝试访问相同的资源,但它没有关闭第一个事务。

有人会提供超时和/或死锁类型的列表,这将帮助我在处理应用程序时避免此类情况。

sql-server deadlock query-timeout

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

不同字符集导致的Oracle导入问题

我正在尝试将 Oracle 11 导出导入 Oracle 11 XE。

我收到以下消息:

在 WE8MSWIN1252 字符集和 AL16UTF16 NCHAR 字符集中完成的 XE fehlerhaft 导入
导入服务器使用 AL32UTF8 字符集(可能的字符集转换)

任何想法,我如何将此转储导入 Oracle 11 XE ?

编辑:

给定一张桌子

CREATE TABLE BDATA.Artikel(
    Key                   VARCHAR2(3)  NOT NULL,
    Name                  VARCHAR2(60) NOT NULL,
    Abkuerzung            VARCHAR2(5)  NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

我收到这样的错误

IMP-00019: row rejected due to ORACLE error 12899
IMP-00003: ORACLE error 12899 encountered
ORA-12899: value too large for column "BDATA"."ARTIKEL"."ABKUERZUNG" (actual: 6, maximum: 5)
Column 1 ABL
Column 2 Aufbewahrungslösung
Column 3 AfbLö
Run Code Online (Sandbox Code Playgroud)

导入中缺少某些行。

oracle import

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

PostgreSQL 事务提交数小时

我遇到了一个问题,即我有两个从用户到我的 PostgreSQL 服务器的连接,这些连接已经运行了大约 4 个小时并且已经处于提交状态相当长一段时间(我一直在观看它至少 1 小时) . 这些连接会阻止其他查询运行,但它们本身并未被阻止。

这是有问题的两个连接。

postgres=# select * from pg_stat_activity where usename = 'xxxxx';
 datid | datname | procpid | usesysid | usename | current_query | waiting |          xact_start           |          query_start          |         backend_start         |  client_addr  | client_port
-------+---------+---------+----------+---------+---------------+---------+-------------------------------+-------------------------------+-------------------------------+---------------+-------------
 20394 | xxxxxx  |   17509 |    94858 | xxxxx   | COMMIT        | f       | 2014-01-30 05:51:11.311363-05 | 2014-01-30 05:51:12.042515-05 | 2014-01-30 05:51:11.294444-05 | xx.xx.xxx.xxx |       63531
 20394 | xxxxxx  |    9593 |    94858 | xxxxx   | COMMIT …
Run Code Online (Sandbox Code Playgroud)

postgresql linux postgresql-8.4

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

没有 PARTITION BY 的 ROW_NUMBER() 仍然生成 Segment 迭代器

我正在撰写我即将发表的关于排名和聚合窗口函数的博客文章,特别是 Segment 和 Sequence Project 迭代器。我理解的方式是 Segment 标识流中构成组结束/开始的行,因此以下查询:

SELECT ROW_NUMBER() OVER (PARTITION BY someGroup ORDER BY someOrder)
Run Code Online (Sandbox Code Playgroud)

将使用 Segment 来判断一行何时属于前一行以外的不同组。然后 Sequence Project 迭代器根据 Segment 迭代器的输出进行实际的行号计算。

但是使用该逻辑的以下查询不应包含 Segment,因为没有分区表达式。

SELECT ROW_NUMBER() OVER (ORDER BY someGroup, someOrder)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这个假设时,这两个查询都使用了 Segment 运算符。唯一的区别是第二个查询不需要GroupBy在 Segment 上。这不是首先消除了对 Segment 的需求吗?

例子

CREATE TABLE dbo.someTable (
    someGroup   int NOT NULL,
    someOrder   int NOT NULL,
    someValue   numeric(8, 2) NOT NULL,
    PRIMARY KEY CLUSTERED (someGroup, someOrder)
);

--- Query 1:
SELECT ROW_NUMBER() OVER (PARTITION BY someGroup ORDER BY someOrder)
FROM …
Run Code Online (Sandbox Code Playgroud)

sql-server execution-plan

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

为什么我不能直接调用我的 UDF?为什么我需要将它限定为 3 个级别?

我刚刚创建了一个 UDF 并对其进行了测试,我发现只有在使用此语法时才有效

SELECT [PMIS].[dbo].[fnIsReportingTo] (50,1132)
Run Code Online (Sandbox Code Playgroud)

我期待它像这样工作:

select * from fnIsReportingTo (50,1132)
Run Code Online (Sandbox Code Playgroud)

或者

select fnIsReportingTo (50,1132)
Run Code Online (Sandbox Code Playgroud)

这是我的创建 SQL:

create function fnIsReportingTo
(
@BossID int,
@EmployeeID int)
RETURNs bit
AS
begin
declare @ret bit
    if exists (select * from dbo.fnGetEmployeeHierarchy(@BossID) where employeeID=@employeeID)
        select @ret=1
    else
        select @ret=0
return @ret
end
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 sql-server syntax functions

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

如何重命名本地 SQL 开发服务器?

我是一个开发人员,他继承了一个功能齐全的盒子,可以做我需要的大部分工作。除了机器名称仍然是旧开发者的名称(我们将其命名为“{username}-dt”或“{username}-lt”以方便网络上的 id)并且我想将其从 old-username 重命名为我的用户名。

当然,这也会影响 SQL,所以我想在重命名我的机器之前,我会就我需要做的事情征求更有经验的建议。我知道有一些“sp_”sproc 需要运行,但是我什么时候运行它们?我是否需要在之前或之后重新启动我的盒子,我是否需要一定级别的特权?它会破坏盒子上任何现有的基于 Windows 的身份验证(这些帐户无论如何都是 AD 帐户)?

sql-server-2008 sql-server

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

在 Sys.columns 中是否有与 system_type_id 对应的数据类型的列表

是否有与 Sys.columns 中的 system_type_id 对应的数据类型的列表。我正在寻找一种简单的方法来检查我们在数据库中的列,我想避免 INFORMATION_SCHEMA.COLUMNS。

sql-server

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