标签: sql-server

域管理员无法连接到 SQL Server

我有一个 Windows Server 2012 R2 域控制器和一个数据库服务器 (W2K12R2/SQL Server 2012)。

作为允许的用户组,我已授予组“域管理员”系统管理员权限。

但是不知何故,任何域管理员都无法连接到该 SQL Server,但是当我将域管理员用户直接添加为允许的用户时,它确实可以工作。活动目录确实有效。RDP-登录有效。我错过了什么吗?

有谁知道如何授予对整个组“域管理员”的访问权限?

错误信息是:

服务器名称:SRV-DB
错误编号:18456
施韦雷格勒:14
状态:1
代码行:65536

在事件日志中它说(翻译):

检查基于令牌的服务器访问时发生基础结构故障时出错。

状态为 "1" 。我以域管理员身份使用 RDP 登录到该数据库服务器。我必须以“以管理员身份运行”明确启动 SSMS。然后我可以访问“本地主机”。如果我不以管理员身份启动 SSMS,那么我就不能这样做。我认为加入“域管理员”组就足够了。

sql-server permissions sql-server-2012 connectivity

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

需要在 Sql Server 2008 R2 中通过数据库邮件发送格式化的 HTML 电子邮件

我的要求是将自动电子邮件创建为(通过数据库邮件格式化的 HTML 电子邮件)基本要求已经完成,当作业被触发时,它将数据插入到表中,并且该信息已被安排作为电子邮件发送,但现在客户已经以这种格式请求了。

我已经完成的当前格式

 PO Date:2014-11-26 PO ID:PO1 SAP Ref:0001106102 GRN:1067 DealerID:045 Dealer Name:ABC(Pvt)Ltd. 2 Status:New
Run Code Online (Sandbox Code Playgroud)

客户要求的格式为表格格式

PO Date |PO ID| SAP Ref| GRN|DealerID|Dealer Name|Status
Run Code Online (Sandbox Code Playgroud)

这是我用来将数据插入到 Email_Table(_ERROR_MAIL) 中的 SQL 查询,这需要根据要求进行觊觎

IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'ImpCancelledGRN')
BEGIN
    DROP PROCEDURE [dbo].[ImpCancelledGRN]
END
GO


CREATE PROCEDURE [dbo].[ImpCancelledGRN] 
WITH ENCRYPTION
AS

SET NOCOUNT ON
BEGIN
BEGIN TRY
    -- Begin transaction
    BEGIN TRAN

            INSERT INTO _ERROR_MAIL(Recipients, Subject, CreationDate, IsNew, LastModifiedBy, Body)
            SELECT 'noreply-Email@Adress.com', 'SAP CANCELLED GRN', …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008-r2 database-mail

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

将数据加载到临时表时获得最少的日志记录

阅读数据加载性能指南 后,我仍然不确定是否有必要将 TABLOCK 表提示添加到使用聚集索引定义的空临时表中,以便获得最少的日志记录。

显然,临时表是在 TempDB 中创建的,它在 SIMPLE 恢复模式下运行,所以我认为它是最小日志记录的完美候选者;然而,我找不到一段话来证实它。

临时表是否是最小日志记录的候选者,如果是,是否值得为永久表添加 TABLOCK 提示?

performance sql-server t-sql import database-internals

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

具有多个 .mdf 文件的数据库

我在网上搜索过,但没有找到我要找的东西。

问题/查询据我所知,SQL Server 中的数据库应该有一个 .mdf 文件,可能还有一些 .ndf 文件和一个 .log 文件。

我见过许多带有一个 mdf 和多个 ndf 文件的数据库。但是最近我在服务器上遇到了一些数据库,其中每个数据库都有多个 mdf 文件。

我备份了一些数据库,将它们移动到另一台服务器,并将主文件恢复为 .mdf,所有其他文件显然都恢复为 .ndf,除了它恢复为 .log 的日志文件。

现在我的问题是:

  1. 为数据库设置多个 .mdf 文件有什么智慧吗?
  2. 拥有多个 .mdf 文件有什么缺点吗?

它是 SQL Server 2008 R2 64bit Enterprise Edition

任何正确方向的建议或指针都非常感谢。谢谢你。

sql-server sql-server-2008-r2 files

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

从左边出现第二个特定字符后删除字符串

我在表列中有这种类型的值

154646@8@486
45465@6464@654
Run Code Online (Sandbox Code Playgroud)

等等。

如何在第二个@ 字符后删除所有内容?我需要显示

154646@8
45465@6464
Run Code Online (Sandbox Code Playgroud)

我只能为所有@ 做,但不能为第二个做

SELECT REPLACE(LEFT('45@Tra@lala', CHARINDEX('@','45@Tra@lala')-1),'_',' ')
Run Code Online (Sandbox Code Playgroud)

返回45但不返回45@Tra

谢谢 :-)

sql-server

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

SQL Server Management Studio 2014 备份 - 设置属性设备错误

我最近将我的本地 SQL Server 升级到了 2014 版,它也安装了 SSMS 2014。
当使用 SQL Server Management Studio 2014 创建备份(本地和远程,服务器版本 2008 - 2014)时,我收到以下错误:

要完成此操作,请设置属性 Devices。

在下拉列表中,我选择了磁盘,并且还选择了备份路径。该路径存在于服务器上,我对此路径拥有完全权限。
如果我使用具有相同设置的旧 SQL Server Management Studio 2012,备份工作没有任何问题。
它也适用于 T-SQLBACKUP DATABASE SOMEDATABASE TO DISK = 'D:\SomeDir\SomeDataBase.bak' WITH COMPRESSION

所以这个问题必须与管理工具版本 2014 相关。我在互联网上找到的唯一解决方案是由于缺少路径,这对我来说并非如此。
有没有人经历过和/或解决过这个问题?

编辑:添加屏幕截图(德语用户界面)

备份错误 SSMS 2014

翻译:
- Vollständig:完整
- Datenträger:磁盘

媒体和安全选项不变。仅以主数据库为例,其他所有数据库都会发生。

媒体选项 安全选项

21.07.2015 更新

该问题似乎与我在德语 Windows 和德语 SQL Server 2014 安装上使用英语语言包有关。如果 Windows 显示语言设置为德语,问题就会消失。如果 Windows 显示语言设置为英语,问题会再次出现。

感谢所有贡献。

sql-server ssms sql-server-2014

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

SQL Server 2012 缓冲池外的内存消耗

我有一个 SQL Server 2012 SP2 企业版的实例,它消耗的内存比最大值高约 20GB。内存限制。实例限制为 65GB,但以下查询中使用的物理内存显示为 86GB

SELECT (physical_memory_in_use_kb/1024)/1024 AS [PhysicalMemInUseGB]
FROM sys.dm_os_process_memory;
GO
Run Code Online (Sandbox Code Playgroud)

服务器是具有 2 个 NUMA 节点的物理服务器。有没有一种方法可以找出正在消耗缓冲池之外的内存的东西(我假设这就是正在发生的事情)?

这是 DBCC MEMORYSTATUS 的输出:-

DBCC MEMORYSTATUS 的输出

这是设置的内存限制:-

内存限制的屏幕截图

提前致谢。

更新:-我已经运行了 Aaron 建议的查询

SELECT TOP (20) * FROM sys.dm_os_memory_clerks ORDER BY pages_kb DESC
Run Code Online (Sandbox Code Playgroud)

这是输出:-

内存职员输出

pages_kb 的总和达到 ~60GB

更新 2:- DBCC MEMORYSTATUS 的完整输出在这里:- http://pastebin.com/nGn6kXEc

更新 3:- 此处在 excel 文件中输出 Shanky 的脚本:- http://jmp.sh/LKRlH4K

更新 4:- 输出的屏幕截图:-

SELECT (physical_memory_in_use_kb/1024)/1024 AS [PhysicalMemInUseGB]
FROM sys.dm_os_process_memory;
GO
Run Code Online (Sandbox Code Playgroud)

PhysMemInUse 截图

所以这似乎表明 SQL Server 正在使用超过 65GB 的设置。

sql-server memory sql-server-2012

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

SQL Server 何时获取锁?

此处找到的 SQL Server 中的隔离级别列表指出,在事务中获取的写锁将保留到事务结束。但是,它没有提及有关何时获取这些锁的任何信息。

默认情况下,锁是在事务开始时获取还是在需要时获取?如果后者为真,那么在大型事务中尽可能晚地执行写操作以最小化持有 X 锁的时间是否有利?

sql-server deadlock transaction locking blocking

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

SQL Server 累积更新 - 在 Windows 更新中不可见

我刚刚在 WS2008R2/SQL2012 实例上安装了所有可能的 Windows 更新。当我跑

SELECT @@VERSION

我得到

Microsoft SQL Server 2012 - 11.0.5058.0 (X64) 
    May 14 2014 18:34:29 
    Copyright (c) Microsoft Corporation
    Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
Run Code Online (Sandbox Code Playgroud)

根据

http://sqlserverbuilds.blogspot.com/

和 Microsoft 网站,有 4 个可用于 SQL Server 2012 SP2 的累积更新,最新版本是 11.00.9000。

为什么 Windows 更新也没有获得累积更新?我应该手动下载并安装它们吗?

sql-server sql-server-2012 windows-server

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

为什么我的 SQL Server 查询在 UPDATE 和 SELECT 上的表现不同?

我编写了一个 SQL Server 查询,它在对字段进行分区后更新记录以具有序列号。当我将它作为 SELECT 语句运行时,一切看起来都很棒:

DECLARE @RunDetailID INT = 448
DECLARE @JobDetailID INT

SELECT @JobDetailID = [JobDetailID] FROM [RunDetails] WHERE [RunDetailID] = @RunDetailID

SELECT
    [OrderedRecords].[NewSeq9],
    RIGHT([OrderedRecords].[NewSeq9], 4)
FROM
    (
        SELECT
            [Records].*,
            [Records].[SortField] + RIGHT('0000' + CAST(ROW_NUMBER() OVER(PARTITION BY [Records].[SortField] ORDER BY [Records].[RunDetailID], [Records].[SortField], [Records].[PieceID]) AS VARCHAR), 4) NewSeq9
        FROM
        (
            SELECT
                [MRDFStorageID], 
                [RunDetailID], 
                [SortField], 
                [PieceID], 
                [Seq9], 
                [BallotType]
            FROM
                [MRDFStorage]
                    JOIN [BallotStyles] ON [MRDFStorage].[SortField] = [BallotStyles].[Style] and [BallotStyles].[JobDetailID] = @JobDetailID
            WHERE
                [RunDetailID] IN (SELECT [RunDetailID] FROM [RunDetails] WHERE [JobDetailID] = …
Run Code Online (Sandbox Code Playgroud)

sql-server subquery window-functions update

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