标签: errors

MSSQLSERVER 服务*未*启动,端口 1433 正在使用

如果之前有人问过这个问题,很抱歉提出。SQL Server 服务被定义为手动,每当我启动它时,我都会得到(事件查看器):

服务器 TCP 提供程序无法侦听 [“any”1433]。TCP 端口已被使用。

SQL Server (MSSQLSERVER) 服务因特定于服务的错误而终止

通常只允许每个套接字地址(协议/网络地址/端口)使用一次。

奇怪的是,我的以太网和 WiFi 适配器都禁用了 ipv6,但它已经运行良好多年了。

环境详情:

  • Windows 2008-R2;
  • SQL Server 2012 BI SP1;
  • 应用了所有 MSFT 补丁。

sql-server sql-server-2012 errors

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

如何在 Amazon RDS 上查询 INFORMATION_SCHEMA.COLUMNS?

我收到了另一个团队发来的列名列表。为了确保所有字段列名称在特定模式内有效,我将它们放入临时表中。我现在想看看它们是否存在。当我尝试加入 时information_schema.columns,我收到以下错误:

ERROR: 0A000: Specified types or functions (one per INFO message) not supported on Redshift tables.
Column "c.column_name" has unsupported type     "information_schema.sql_identifier".
Column "a.*" has unsupported type "pg_attribute".
Column "t.*" has unsupported type "pg_type".
Function "format_type(oid,integer)" not supported.
Function "format_type(oid,integer)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Run Code Online (Sandbox Code Playgroud)

我尝试过塑造column_name不同的类型,但没有成功。有人可以告诉我出了什么问题以及我如何实现这个目标吗?

information-schema errors catalogs system-tables redshift

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

为什么添加 WHERE 子句会破坏我的工作查询,并出现错误“由于定义的提示,查询处理器无法生成查询计划...”?

我有以下(愚蠢地简化的)查询,它利用两个引用同一个表的 CTE 并将它们相互连接:

WITH CTE1 AS
(
    SELECT dbo.RemoveNonNumericCharacters(PhoneNumber) AS PhoneNumberCleaned
    FROM PhoneNumbersTable
    GROUP BY dbo.RemoveNonNumericCharacters(PhoneNumber)
),
CTE2 AS
(
    SELECT CTE1.PhoneNumberCleaned
    FROM CTE1
    INNER HASH JOIN PhoneNumbersTable
        ON CTE1.PhoneNumbersCleaned = dbo.RemoveNonNumericCharacters(PhoneNumbersTable.PhoneNumber)
    WHERE PhoneNumbersTable.AreaCode IN (718, 212)
)

SELECT PhoneNumberCleaned
FROM CTE2
Run Code Online (Sandbox Code Playgroud)

注意HASH JOIN里面发生的事情CTE2。到目前为止,这一切都运作良好。

如果我将以下WHERE子句添加到最终SELECT查询中,那么我的整个查询现在变为:

WITH CTE1 AS
(
    SELECT dbo.RemoveNonNumericCharacters(PhoneNumber) AS PhoneNumberCleaned
    FROM PhoneNumbersTable
    GROUP BY dbo.RemoveNonNumericCharacters(PhoneNumber)
),
CTE2 AS
(
    SELECT CTE1.PhoneNumberCleaned
    FROM CTE1
    INNER HASH JOIN PhoneNumbersTable
        ON CTE1.PhoneNumbersCleaned …
Run Code Online (Sandbox Code Playgroud)

sql-server hints execution-plan errors sql-server-2016

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

创建函数时出现无效对象名称错误

我有这个功能get_department。函数内部有一个函数调用get_po_amount.

get_po_amount函数不再存在,因此当我尝试创建 Main 函数时get_Department,出现错误“对象名称 get_po_amount 无效”。

有什么方法可以通过不在内部创建函数来创建该函数。

我也有同样的观点问题。在另一个视图中调用一个视图。

我创建这些函数只是为了展示一个示例,我需要在大型数据库上执行此操作。

CREATE FUNCTION [dbo].[GET_DEPARTEMNET]
(
    @DEPTNO NVARCHAR(100)
    
)
    RETURNS TABLE 
AS 
RETURN 
   (    
        SELECT * FROM  [dbo].[dept] WHERE DEPTNO=(SELECT [dbo].[GET_PO_AMOUNT](@DEPTNO)))
GO
Run Code Online (Sandbox Code Playgroud)

sql-server functions errors

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

为什么 Varchar 的数据类型优先级低于 INT?

给出下表:

CREATE TABLE #a
(
    MyInt INT
)

INSERT INTO #a VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9),(10)

CREATE TABLE #b
(
    MyVarchar VARCHAR(10)
)

INSERT INTO #b VALUES('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('ten')
Run Code Online (Sandbox Code Playgroud)

如果我运行以下查询;

SELECT  *
FROM    #a
        LEFT JOIN #b
            ON #a.MyInt = #b.MyVarchar
Run Code Online (Sandbox Code Playgroud)

SQL Server 必须执行隐式转换,因为#a.MyInt#b.MyVarchar是不匹配的数据类型。由于数据类型优先级,具有最低类型优先级 (#b.MyVarchar) 的列将转换为较高优先级 (INT) 的类型

这意味着上面的查询等效于

SELECT  *
FROM    #a
        LEFT JOIN #b
            ON #a.MyInt = CONVERT(INT,#b.MyVarchar)
Run Code Online (Sandbox Code Playgroud)

两者都失败,因为其中某个值#b.MyVarchar对于列来说是无效值INT

我的问题是为什么 的VARCHAR优先级低于INT?如果是相反的情况,隐式转换将会成功,但我们会得到一个错误的查询。为什么错误比成功执行更可取?我的猜测是,这对于 SQL Server 来说更像是一种“防御”机制 - 它更喜欢错误,因此需要用户明确决定他们想要做什么,而不是在用户不知情的情况下给出可能意外的查询结果。意识到?

sql-server datatypes errors implicit-conversions

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

插入 1 个错误值 -> 错误;插入 2 个错误值 -> 警告!

CREATE TABLE `dummy` (
    `a` TINYINT(4) NOT NULL
) ENGINE=MyISAM;
Run Code Online (Sandbox Code Playgroud)

1 错误值

INSERT INTO `dummy` (`a`) VALUES (NULL);
/* SQL Fehler (1048): Column 'a' cannot be null */
/* Nothing is stored! */
Run Code Online (Sandbox Code Playgroud)

2个错误的值

INSERT INTO `dummy` (`a`) VALUES (NULL), (NULL);
/* Affected rows: 2  Gefundene Zeilen: 0  Warnungen: 2  Dauer von Abfrage: ... sec. */
SHOW WARNINGS LIMIT 5; /* Not sure where this comes from! Maybe HeidiSQL? */
/* Two entries are stored! */
Run Code Online (Sandbox Code Playgroud)

为什么 MySQL 会在单值查询中引发错误,而在具有两个值的第二个查询中却没有?

它与 …

mysql insert errors warning mysql-5.6

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

错误严重性 16 针对 is_event_logged = 0 的事件发出警报

我的错误级别 16 警报设置如下:

USE [msdb]
GO

EXEC msdb.dbo.sp_add_alert @name=N'Error - Severity 16', 
        @message_id=0, 
        @severity=16, 
        @enabled=1, 
        @delay_between_responses=0, 
        @include_event_description_in=1, 
        @category_name=N'[Uncategorized]', 
        @job_id=N'00000000-0000-0000-0000-000000000000'
Run Code Online (Sandbox Code Playgroud)

我很好奇为什么

SELECT 1/0;
Run Code Online (Sandbox Code Playgroud)

消息 8134,级别 16,状态 1,第 17 行 遇到除零错误。

没有引发错误,但是

BACKUP DATABASE MyDatabase TO DISK = 'C:\FolderThatDoesntexist'
Run Code Online (Sandbox Code Playgroud)

消息 3201,级别 16,状态 1,第 8 行 无法打开备份设备“C:\FolderThatDoesntexist”。操作系统错误 5(访问被拒绝。)。

消息 3013,级别 16,状态 1,第 8 行备份数据库异常终止。

曾是

这篇文章它引用的博客文章表明 SQL Server 只会针对记录的错误引发事件,这可以在sys.messages

所以我查询sys.messages了这些错误代码:

SELECT  severity,
        message_id,
        is_event_logged
FROM    sys.messages
WHERE   language_id = 1033 AND
        message_id IN (8134,3201,3013)
Run Code Online (Sandbox Code Playgroud)

但发现这三个都设置为0:

在此输入图像描述

为什么 3201 …

errors alerts raiserror sql-server-2016

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

如何区分运行时错误和其他错误?

请考虑以下错误消息。

消息 207 级别 16 状态 1 第 7 行

列名“FOO”无效。

由于我触发它的方式,我碰巧知道这是一个解析/编译时错误。

假设我正在运行一个不属于过程的长脚本,并且我收到了相同的错误消息。此错误消息中的内容告诉我错误是在解析/编译时而不是运行时发生的?


CREATE TABLE Department_History
(
    DepartmentNumber INT
);
GO

ALTER TABLE Department_History ADD FOO INT;

-- This is fine and shows FOO.
SELECT * FROM Department_History;

-- When uncommented, this fails at parse time.
INSERT Department_History (DepartmentNumber, FOO) VALUES (4, 5), (6, 7), (8, 9);
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql errors

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

为什么我会收到错误消息“'<列名>' 必须出现在 GROUP BY 子句中或用于聚合函数中”?

我哪里错了?为什么在添加 MAX 函数时会收到该消息?

查询涉及:

WITH
   references_cve AS (
      SELECT vulnerability_id, reference
      FROM dim_vulnerability_reference
      WHERE dim_vulnerability_reference.source = 'NVD'
   )
SELECT DISTINCT ON (
      da.ip_address,
      favi.port,
      dv.severity,dp.name, dv.title,
      dv.description,
      fix,
      dv.nexpose_id,
      cve.reference,
      da.host_name,
      dos.description,
      da.last_assessed_for_vulnerabilities,
      davbs.solution_id
   )
   da.ip_address AS IPAddress,
   CASE WHEN favi.port = -1 THEN NULL ELSE favi.port END AS Port,
   dv.severity AS Severity,
   dp.name AS Protocol,
   dv.title AS VulnerabilityName,
   htmlToText(dv.description) AS Summary,
   htmlToText(dv.description) AS Description,
   htmlToText(fix) as Solution,
   'https://www.rapid7.com/db/vulnerabilities/' || dv.nexpose_id as SeeAlso,
   dv.nexpose_id AS NexposeID,
   ''||null as PluginOutput,
   cve.reference …
Run Code Online (Sandbox Code Playgroud)

postgresql group-by errors

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

执行过程时无限循环

在此输入图像描述

我有这张表,有 3 条记录。3条记录是创建脚本。我需要执行创建脚本,如果发生208错误,那么我需要保留记录并将状态设置为1。然后在其他记录完成后再次执行它。如果没有错误或者有除 208 之外的任何其他错误,我需要从表中删除它。但是当我执行它时,它会无限循环。我该如何解决?

问题是第二个视图参考了第一个视图。所以我需要先创建第二个,然后创建第一个。这就是我创建这个 SP 的原因。任何其他想法也表示赞赏。我是编码新手,所以请原谅我犯的任何错误。

Create PROCEDURE [dbo].[UP_CREATE_SCRIPT]

AS 

BEGIN 

declare @qry1 nvarchar(max)
DECLARE @i INT =1
DECLARE @qry2 NVARCHAR(100) 
IF EXISTS (select 1 from [SmartMigrateDB_New].dbo.temp3 where id>0 and type<>'sq') 

BEGIN 
truncate  table error_log

    while (select count(1) from [SmartMigrateDB_New].dbo.temp3 where status=1)>=0

    BEGIN 
        WHILE @i <=  (SELECT MAX(ID) FROM [SmartMigrateDB_New].dbo.temp3)
           BEGIN
            BEGIN TRY
             set @qry1 = ( select code from [SmartMigrateDB_New].dbo.temp3  where id = @i  )
             print @qry1                        
             EXEC sp_ExecuteSQL @qry1
             update [SmartMigrateDB_New].dbo.temp3 set status=0  where id = …
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures functions errors query-performance

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

我什么时候应该检查错误日志?

我的职业生涯多种多样,但我从未SQL Server 错误日志中找到相关信息。什么情况下我应该考虑检查?

sql-server t-sql errors error-log sql-server-2019

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