小编Han*_*non的帖子

任何作业完成时执行 SP

我在服务器上有很多 SQL Server 作业。每当完成任何作业执行时,我都需要执行 SP。一种困难的方法是在每个调用该 SP 的作业上创建一个步骤。

有没有简单的方法可以做到这一点?作业完成后,SQL Server 是否执行任何 SP 或任何内容?

sql-server sql-server-2012 sql-server-agent

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

从 SQL Server 2012 迁移到 SQL Server 2014 时 SQL Server 性能变慢

我们正在尝试在 Windows 2012 R2 操作系统上从 SQL Server 2012 迁移到 SQL Server 2014。

升级后,我们正在进行性能测试,并观察到仅从一个表(根本没有连接)运行简单查询的巨大差异。

该查询在 SQL Server 2012 中执行时间为 4 秒,但在 SQL Server 2014 中执行时间超过 1 分钟。

SQL Server 安装在 2 个不同的 VM(不同的 IP 地址)上。他们在每台机器上只有一个 SQL Server 实例。

两台机器之间的处理器/内存/硬盘空间相同。

这些机器安装了相同的应用程序。我们直接从 SQL Server Management Studio 运行相同的选择查询。

performance sql-server upgrade sql-server-2012 sql-server-2014

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

SQL Server 2014 LocalDB 中的 SQLCMD.EXE 在哪里或如何安装?

在安装了 SQL Server LocalDB 2014 的机器上,我正在寻找 SQLCMD.EXE 文件,但在任何地方都找不到它。有没有办法单独安装?

不幸的是,我不是机器的本地管理员,所以我不喜欢 MSI ...

找到此链接https://www.microsoft.com/en-us/download/confirmation.aspx?id=36433,但不能使用 MSI ... 也许复制可执行文件和 dll 可以解决问题。

C:\Program Files\Microsoft SQL Server\110\Tools\Binn 从安装了 SSMS 的另一台计算机复制文件 SQLCMD.EXE、BATCHPARSER.DLL 和 SQLCMD.RLL 后,我仍然收到错误:

Microsoft SQL Server Native Client 11.0:未找到数据源名称且未指定默认驱动程序。

运行sqlcmd -S np:\\.\pipe\LOCALDB#F8040C8F\tsql\query

sql-server sqlcmd sql-server-localdb

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

安装旧版本 SQL Server 的实例

在安装较新版本后安装以前版本的 SQL Server 实例时,是否有任何需要注意的问题?例如,将 2008 安装到具有现有 2012 实例的服务器上?

我找不到特定于这种情况的陈述,但这似乎有风险。

sql-server instance installation

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

重新启动主动节点服务而不进行故障转移

在 2 节点 Windows Server 故障转移群集配置中,如何重新启动 SQL Server 服务而不故障转移到其他节点?

windows clustering failover high-availability

5
推荐指数
2
解决办法
3646
查看次数

如何避免在“匹配时更新”子句中重复相同的条件?

我想将一张表合并到另一张表中。我需要在我的 WHEN MATCHED 子句中应用条件逻辑,理想情况下这样做:

MERGE INTO ATable AS a
USING BTable AS b
ON a.ID = b.ID
WHEN NOT MATCHED THEN
-- Do insert
WHEN MATCHED AND b.NeedsAdjustment = 1 THEN
UPDATE SET
    Col1 = b.Col1 + b.Adjustment
    ,Col2 = b.Col2 + b.Adjustment
    ,Col3 = b.Col3 + b.Adjustment
WHEN MATCHED THEN -- Default case (b.NeedsAdjustment <> 1)
UPDATE SET
    Col1 = b.Col1
    ,Col2 = b.Col2
    ,Col3 = b.Col3
Run Code Online (Sandbox Code Playgroud)

这不是有效的 SQL。根据 MSDN 文档:

如果有两个 WHEN MATCHED 子句,则一个必须指定 UPDATE 操作,一个必须指定 DELETE 操作。 …

sql-server update merge

5
推荐指数
2
解决办法
1735
查看次数

SQL Server 2012 Express 支持多少用户?

我想说我已经浏览了一些 sql 博客和 MSDN BOL,但仍然有一些困惑。

  1. SQL Server 2012 Express 的限制是 10 GB。这是基于实例还是基于每个数据库的限制?

  2. SQL Server 2012 Express 的连接数:连接数有限制或无限制。

    如果我将使用服务器版本的操作系统,那么最大并发用户连接数是多少。

  3. 限制来自数据库级别或操作系统级别。

  4. 如果我将 Windows Server 2012 R2 与 SQL Server 2012 Express SP1 一起使用,那么最大并发连接数是多少?

  5. 我们可以在单个 SQL Server 实例下保留多少个数据库。

任何帮助或建议将不胜感激

max-connections sql-server-2012 sql-server-express windows-server

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

RIGHT() 在 SELECT 中有效但在 UPDATE 中无效?

我正在尝试运行一个脚本,该脚本执行一些工作,包括从列的每一行内的字符串中去除前导两个字符。为此,我正在使用RIGHT()它,当我在 a 中使用它时它工作正常,SELECT..FROM但是当我在 a 中使用相同的代码时UPDATE它失败了

传递给 RIGHT 函数的长度参数无效

为什么它失败了UPDATE但不是SELECT...FROM

USE JobSight;

DROP TABLE #ReleaseTemp;


SELECT  A.MajRelease,  
        A.MinRelease,
        A.Build,
        Split.a.value('.', 'VARCHAR(MAX)') AS ReleaseNotes
INTO #ReleaseTemp
FROM  
        (
            SELECT  MajRelease,
                    MinRelease,
                    Build,  
                    CAST ('<M>' + REPLACE(RelNotes, ';;', '</M><M>') + '</M>' AS XML) AS ReleaseNotes
            FROM JobsDB.dbo.ReleaseData
        ) AS A 
    CROSS APPLY ReleaseNotes.nodes ('/M') AS Split(a);

UPDATE #ReleaseTemp
SET ReleaseNotes = RIGHT(ReleaseNotes, LEN(ReleaseNotes) - 2);

UPDATE #ReleaseTemp
SET ReleaseNotes = LTRIM(#ReleaseTemp.ReleaseNotes);

SELECT  MajRelease, …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2008-r2

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

什么是森林?

我正在阅读 Microsoft 文章如何解决“无法生成 SSPI 上下文”错误消息

这两句话暗示,如果我知道域是什么,我应该知道森林是什么,但我不知道。我用谷歌搜索了一下,我发现的所有东西要么不相关(“只见树木不见森林”),要么没有解释该术语。

将 SPN 视为服务器资源中某个实例的域或林唯一标识符。

——

3.检查服务器所属的域和您用来连接的域帐户是否在同一个林中。这是 SSPI 工作所必需的。

sql-server kerberos

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

SQL Server 登录无法看到数据库

作为理论测试(因为我想复习我对 SQL Server 安全性的理解)我想设置一个 SQL Server 登录,它只能看到一个数据库中一个表上的几个字段。

除了默认的 public,我没有为此登录分配任何角色。我不希望假设的用户具有任何服务器角色(即不是 sysadmin、dbcreator)……而且我不想为数据库使用任何标准角色(db_datareader 等)……

登录有默认数据库,登录映射到数据库(默认架构dbo)。现在,在用户安全对象中,我已授予对一张表的访问权限并使用列权限来指定列,但在测试登录时我真的没有做到这一点。

当我使用 SQL Server 身份验证和新登录名登录到 SSMS 时,除了 master/tempdb 之外,我看不到任何数据库...

我应该看到我的默认/映射数据库吗?我没有看到任何其他类似这样的问题,所以我猜我错过了一些完全明显的东西。

为了使用 sql 登录名登录到 SSMS,您是否必须拥有分配的服务器角色才能查看非系统数据库?当我添加 sysadmin 时我可以看到数据库,但随后我又回到了过度授权。


CREATE LOGIN [Chris_Test2] WITH PASSWORD=N'¯\Ï<ÞZcÅÎ5¿ûY!ËDåÜ''¨Äs»¾Þja7', 
DEFAULT_DATABASE=[Finance_Receivables_TEST], 
DEFAULT_LANGUAGE=[us_english], 
CHECK_EXPIRATION=OFF, 
CHECK_POLICY=OFF
GO


USE [Finance_Receivables_TEST]
GO
/****** Object:  User [Chris_Test2]    Script Date: 01/18/2017 14:40:21 ******/
GO
CREATE USER [Chris_Test2] FOR LOGIN [Chris_Test2] WITH DEFAULT_SCHEMA=[dbo]
Run Code Online (Sandbox Code Playgroud)

security sql-server

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