标签: sql-server

停止活动节点上的 SQL 服务

我有一个主动的被动 SQL 集群。当我从 SQL Server 配置管理器停止活动节点上的 SQL 服务时,SQL 群集不会进行故障转移,而是显示为部分联机。

如果 SQL 服务从 Configuration Manager 停止,它不会故障转移到另一个节点?

我必须为我的客户准备测试用例,所以我迫切需要清除这个疑问。

sql-server clustering failover

0
推荐指数
1
解决办法
3135
查看次数

无法让我的 SQL 查询按我想要的日期过滤

我有一个查询,如果日期列有一组日期中的任何一个,我想在其中排除行。

我很难弄清楚如何在不过滤一个月的情况下返回正确的结果集。

我最初的尝试假设运算符 '!=' 能够指定多个变量,但我可能会误会。

如何以删除所有我不想要的指定日期的方式过滤结果?

SELECT * INTO IPS_TransactionDataAll2
FROM
[IPS_TransactionDataAll1]
where Format([Start Date], 'MM/yyyy') != ('07/2016''08/2016''09/2016''10/2016''11/2016''10/2016''01/2017''02/2017''03/2017''04/2017''05/2017''06/2017''07/2017')
Run Code Online (Sandbox Code Playgroud)

伪代码:

从 TableA 中选择到 TableB 其中日期不在 7-11/2016 和 1-7/2017 月份

sql-server format

0
推荐指数
1
解决办法
6823
查看次数

您如何使用 Ola.Hallengren 的脚本跳过数据库?

我有几个数据库,前端应用程序在其中管理某些维护任务。在这个特定的例子中,我每晚都在运行 INDEX OPTIMIZE 作业,它经常与应用程序发生冲突并失败。

以下是我收到的错误:

Msg 50000, Level 16, State 1, Server MyTestServer01, Procedure CommandExecute, Line 152
Msg 2550, The index "clidx_StatisticalInterface_dPollTime" (partition 1) on table "StatisticalInterface" cannot be reorganized because it is being reorganized by another process.
Run Code Online (Sandbox Code Playgroud)

我知道有时供应商宁愿他们的内置解决方案管理维护。我确定我可以在应用程序中找到该功能并将其关闭,但这个问题是为了以防万一。

我将如何配置或编辑此作业以忽略同一实例中的特定数据库或数据库列表?

sql-server t-sql ola-hallengren

0
推荐指数
1
解决办法
2947
查看次数

与 NULL 值连接(不应替换 NULL)

经过一段时间寻找答案后,我收到了很多问题,说要使用coalesceconcat()等,但我需要的是:

桌子:

create table nulos ( nome varchar(max))
alter table nulos add cidade varchar(max)
Run Code Online (Sandbox Code Playgroud)

价值观:

insert into nulos values ( 'rafael','são paulo'),('juliana',null)
Run Code Online (Sandbox Code Playgroud)

我需要将这个表中的值连接到一个插入中,如下所示:

 select 'insert into nulos (nome,cidade) values ('+nome+','+cidade+')'
from nulos
Run Code Online (Sandbox Code Playgroud)

和选择的结果:

insert into nulos (nome,cidade) values (rafael,são paulo)
NULL
Run Code Online (Sandbox Code Playgroud)

如何在此串联中使用 NULL 值?每个答案都说用''or替换空值'_',但我需要的是:

insert into nulos (nome,cidade) values (rafael,são paulo)

insert into nulos (nome,cidade) values (Juliana,NULL)
Run Code Online (Sandbox Code Playgroud)

SET CONCAT_NULL_YIELDS_NULL on 不是一个选项,因为它只是删除 NULL 值,我需要插入它。

null sql-server sql-server-2008-r2 string-manipulation

0
推荐指数
1
解决办法
4528
查看次数

SQL Server 2014 - 编译期间奇怪的 SP 行为

今天我注意到在 SQL Server 2014 中创建存储过程的过程中出现了一个奇怪的行为。下面是我的测试过程。请解释为什么 SQL Server 不允许用第一个SELECT编译而允许用第二个编译。

CREATE PROCEDURE [dbo].[test]
AS
BEGIN

    SET NOCOUNT ON;

    IF 1=0  -- this will never occur
    BEGIN
        select x from Table -- TABLE EXIST BUT COLUMN NOT - STORED PROCEDURE IS NOT CREATED
        --Msg 207, Level 16, State 1, Procedure test, Line 25
        --Invalid column name 'x'.

        -- But if i change 
        select x from TableWhichNotExistInDatabase  -- This table not exist in database, but stored procedure has been created without any …
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures sql-server-2014

0
推荐指数
1
解决办法
490
查看次数

如何在不覆盖所有表的情况下恢复备份?

我有一个包含 3 个表的 SQL Server 数据库。我需要恢复包含4 个表的备份,同时仍保留原始 3 个表中的旧数据。这可能吗?

sql-server-2008 sql-server restore

0
推荐指数
1
解决办法
608
查看次数

从 Json 获取 Json 字段值

我想从下面提到的 json 字符串中获取“OrderNumber”字段值。请建议最好的方法来获得相同的

DECLARE @JSON NVARCHAR(MAX)=

  '{"ErpOrderResponses":[{"OrderSubmitStatus":"Ok","TransactionId":"{5EAB3ADC-EB9B-47F7-98B8-1449E2CC0A6B}","OrderNumber":7000027934,"CustomerNumber":80038707,"Description":"Request Successful","ResponseCode":"Success","ResponseType":"None","Errors":[]}],"IsErpUnavailable":false,"IsSuccessful":true,"IsPartiallySuccessful":false,"IsValidationFailed":false,"IsFailed":false}'

    DECLARE @OrderNumber BIGINT = 
    (SELECT REPLACE(REPLACE(SUBSTRING(@JSON,CHARINDEX('OrderNumber',@JSON)+1,
                                                        CHARINDEX(',',@JSON,
                                                                        CHARINDEX('OrderNumber',@JSON)+1
                                                                )-CHARINDEX('OrderNumber',@JSON)
                                                        )
                                                        ,'RDERNUMBER":',''),',','') )
    --SELECT CAST( @OrderNumber AS BIGINT)

    SELECT  @OrderNumber 
Run Code Online (Sandbox Code Playgroud)

sql-server

0
推荐指数
1
解决办法
149
查看次数

我可以简单地将 mdf 和日志文件复制到数据文件夹中以添加新数据库吗?

我有一个数据库的 mdf 和日志文件的副本。该数据库是 MSSQL 2012 数据库。为了使用它,我执行了以下步骤(实际上有点偶然,因为我试图首先从数据目录中复制一个 mdf 和日志文件,并且在服务器使用它们时它不会让我使用它们):

  1. 我在 Windows 中停止了 MSSQL 服务器进程
  2. 将它们复制到DATA目录中。
  3. 然后我再次启动了 MSSQL 服务器进程。

在SQL server management studio中,出现了新的数据库。我想我可能需要附加它。

MSSQL 服务器是否会自动附加数据目录中的所有 mdf?我担心它不能正常工作,即使它看起来像它。

sql-server ssms

0
推荐指数
1
解决办法
2179
查看次数

SQL PRINT 与 SQL EXEC

执行下面的查询时,如果我使用PRINT它打印正确。我可以复制并粘贴打印的代码并执行它。但是,如果我使用 EXEC,则会出现以下错误:

执行时出错

有没有办法简化我正在做的事情?为什么 SQLPRINT和 SQL 会EXEC提供这两种截然不同的结果集?

DECLARE @TableName as NVARCHAR(250), @SQL as VARCHAR(MAX);

DECLARE @TableCursor as CURSOR;
SET @TableCursor = CURSOR FOR
SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'
AND name like 'HISTORY_MasterList_%'
ORDER BY sobjects.name

OPEN @TableCursor;
FETCH NEXT FROM @TableCursor INTO @TableName;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL ='select '''+ @TableName +''', 0
 Union All
select All ''Server Count'',count(1) from ['+ @TableName +'] 
 Union All
select All ''Server Cores'',sum(convert(decimal(18,0),cores)) …
Run Code Online (Sandbox Code Playgroud)

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

0
推荐指数
1
解决办法
1371
查看次数

SQL Server 逻辑 IO 块大小和物理读取

我试图了解由执行某些表扫描的 SQL 语句引起的缓存流失。

假设 LRU 缓存,如果某事正在执行 400K 逻辑 IO,则流过多少内存(IO 块大小 * 逻辑 IO)。

此外,我试图了解如何获取关于顶级逻辑 IO SQL 语句的报告并获取这些产生的物理 IO。

鉴于此,我的问题是:

  1. SQL Server 逻辑 IO 操作所指的 IO 块大小是多少。
  2. 如何获取特定 SQL 执行实例的物理 IO?

sql-server storage

0
推荐指数
1
解决办法
1159
查看次数