问题标签 [sql-server-2019]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
564 浏览

sql-server - SQL Server 2019 中的标量 UDF 内联问题

当我第一次运行以下功能时,以下功能将失败,并出现以下错误:

8124(在包含外部引用的聚合表达式中指定了多个列。)

我第二次运行它运行正常。

如果我删除*DATEDIFF(D, e.FRADATO , @til) 它没有问题。

此功能适用于 SQL Server 2008 R2 和 SQL Server 2016 没有任何问题。

0 投票
2 回答
801 浏览

sql-server - 使用 T-SQL 在 Linux 上获取 sql server 默认备份文件夹

对于 Windows 上的 SQL Server 来获取默认备份文件夹,我们可以使用master.dbo.xp_instance_regread

但对于 Linux,它不起作用。谁能帮助 T-SQL 方法(我只在这里找到 SSMS 解决方案)?

0 投票
1 回答
120 浏览

python - 如何在查询返回中设置行号等于列名?

我正在使用 SQL Server 2019 中的数据库内 Python 引擎计算大型表中列之间的相关性,并且由于此计算返回对角矩阵,因此希望能够在 SSMS 中查看结果,其中标记为镜像列的行名字。

我知道 SQL 查询的基础知识,但了解的不多,所以也许我没有准确地表达我的搜索。

这是我的代码示例:

这将返回:

我想看看:

这可能吗?

0 投票
0 回答
344 浏览

sql-server - SQL Server 代理在为表启用 CDC 时停止

我在 UBUNTU 18.04 上使用最新的 sqlserver (2019)。我想为数据库和表启用 CDC。为数据库启用 CDC 已完成。

当我尝试为表启用 CDC 时,SQL Server 代理停止并给出日志“SQLServerAgent 当前未运行,因此无法通知此操作。”

在启用 CDC 之前,我检查了 SQL Server 代理的状态。它显示状态 4,正在运行。

然后我尝试为表启用 CDC。我在控制台中收到以下消息。

1> 使用生产7;

2>去

将数据库上下文更改为“production7”。

1> 执行 sys.sp_cdc_enable_table

2> @source_schema = N'prod7',

3> @source_name = N'库存',

4> @role_name = 空

5>去

SQLServerAgent 当前未运行,因此无法通知此操作。

SQLServerAgent 当前未运行,因此无法通知此操作。

SQLServerAgent 当前未运行,因此无法通知此操作。

SQLServerAgent 当前未运行,因此无法通知此操作。

0 投票
0 回答
105 浏览

kubernetes - 使用 Kubernetes 服务名称从前端或 API 访问 SQL Server 2019 Linux 数据库

我使用 SQL Server 2017 Linux 映像已经有一段时间了。我可以使用Statefulset和通过服务对象公开的服务名称将其部署到 Azure Kubernetes 服务 (AKS) 集群。然后,我可以使用来自 Web API 或前端应用程序的服务名称连接到 SQL Server 实例。完整的工作示例可以在 repo 中找到 https://github.com/NileshGule/AKS-learning-series/tree/master/k8s/AKS

我使用文档https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-kubernetes-manage?view=sqlallproducts-allversions升级到SQL Server 2019 Linux映像。通过操作员和可用性组部署,我能够创建数据库。但是,如果不提供可用性组主服务的负载均衡器 IP 地址,我将无法从前端和 Web API 项目访问数据库。

有没有办法在不指定 IP 地址的情况下使用服务发现访问 SQL Server 2019?

0 投票
1 回答
47 浏览

sql - 从单个查找表创建视图的最佳实践是什么?

我有一个相当大的表,主要由引用单个查找表的查找 ID 组成。我知道这通常不被认为是最佳实践,但不幸的是,这方面超出了我的控制范围。

我想做的是创建一个视图,将查找 ID 转换为相应的描述(此特定表中的 25-30 个查找列)。从我读过的内容来看,我的选择似乎如下。我的问题是这些(或我没有想到的任何其他方法)中的哪一个将提供性能、可读性和可扩展性的最佳组合。

  1. 只需使用单独的表别名为每一列创建一个左连接。
  2. 使用子查询返回所需查找的内联表值函数
  3. 使用针对标量 UDF 的新 2019 SQL Server 优化的内联标量值函数。

1 似乎是最简单的,但维护和阅读会很麻烦,并且无法转换为我需要此功能的其他表。

2 似乎更具可扩展性,但扩展性不大,我不确定与 #1 相比性能会受到多大影响。

3 是我的首选,因为它具有极强的可扩展性并且使视图更具可读性。但是,我知道这是 MSSQL 的新增功能,因此我非常担心潜在的性能问题与 1 相比。

有人对这种特定方法有任何意见/建议吗?

编辑:这是一个突出使用直接连接的潜在负担的示例。这种特殊的观点要求我将短代码和描述组合在一起。我认为内联 UDF 会使它更具可读性和灵活性,但在完成转换它的所有工作之前,我只是想了解它是否是一个实用的选择......

0 投票
0 回答
234 浏览

sql - 有没有比 LIKE 更快的方法来 RECURSIVELY 加入 SQL-Server,没有循环?

我需要递归地加入一个可以有循环的大图。
现在,在 SQL-Server 中的简化版本如下所示:

由于 SQL-Server 不支持数组,我尝试使用 JSON 进行优化:

但 JSON 并没有更快,而且它只适用于 SQL-Server 2016+。

我也尝试过使用 XML:

虽然这适用于 sql-server < 2016,但这太慢了 - 比喜欢的要糟糕得多。

获得良好性能的唯一方法是切换到支持数组的 PostgreSQL:

这在 1.6 秒内完成,这与我预期的一样好。

有什么方法可以提高 SQL-Server 的性能吗?

注意:
这个愚蠢的例子CTE.i IN (whatever)不应该有任何意义,它只是为了速度比较。

0 投票
1 回答
39 浏览

sql - SQL Server 多级联路径通过添加独立主键解决

我在这里查看了几篇关于 SQL Server 错误 1785 的堆栈溢出的帖子:引入 FOREIGN KEY 约束可能会导致循环或多个级联路径。而且我发现不检查周期是 Microsoft 产品的一项功能,常见的建议是使用触发器绕过它。

所以我的问题是:

如何在 SQL Server 中的多个表上生成外键依赖项?

错误地,我发现如果我创建一个单独的独立 PRIMARY KEY,我可以创建具有多个级联路径的表而不会出错(并且它的功能按预期工作)。作为参考,我正在运行 SQL Server 2019。

以下会产生错误:

由于我无法在任何地方找到此答案,因此我将其发布在这里作为触发器解决方法的替代方案。很高兴知道为什么会这样。

0 投票
1 回答
160 浏览

sql - 如何根据替换表替换字符?

我有一个包含以下列的表:

其中的一些数据是:

我有一个基于 60000+ 行生成 XML 内容(大约 30MB)的存储过程。内容基于各种表格,例如一张表格包含客户名称。此列可能包含一个或多个上述可替换字符。

如何使用上表编写一个替换字符串字符(作为参数传递)的函数?

0 投票
1 回答
347 浏览

oracle - 通过 SQL Server PolyBase 在 Oracle 上创建外部表时出错

我正在尝试使用 SQL Server PolyBase 在 Oracle 上创建一个外部表

一开始我遇到了错误

ORA-28040: 没有匹配的身份验证协议

将以下行添加到 sqlnet.ora 后

SQLNET.ALLOWED_LOGON_VERSION=8

以前的错误消失了,我开始低于错误

[Microsoft][ODBC Oracle 有线协议驱动程序][Oracle]ORA-01017:用户名/密码无效;登录被拒绝

我使用以下凭据创建了数据源

(XE)我可以使用连接到 Oracle 实例,SYSTEM/SYSTEM所以我不知道为什么会出现错误。

我正在使用 SQL Server 2019 CTP-2 和 Oracle 18 Express。