标签: sql-server-2017

帮助安装 SQL Server 2017 - VS Shell 安装失败,退出代码为 1638

有关如何处理此错误的任何建议:

TITLE: Microsoft SQL Server 2017 Setup
------------------------------

The following error has occurred:

VS Shell installation has failed with exit code 1638.

For help, click: https://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft%20SQL%20Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=14.0.1000.169&EvtType=0x5B39C8B9%25401434%25403

------------------------------
BUTTONS:

OK
------------------------------
Run Code Online (Sandbox Code Playgroud)

这是一台正在运行的新笔记本电脑

  • SQL Server 2016 Express
  • 视觉工作室 2017
  • SSMS 2017

我尝试卸载与 SQL Server 或 Visual Studio 相关的任何内容。

日志:[3500:3970][2017-11-03T16:25:20]e000:错误 0x80070666:安装较新版本时无法安装产品。

Detailed results:
  Feature:                       Full-Text and Semantic Extractions for Search
  Status:                        Failed
  Reason for failure:            An error occurred for a dependency of the feature causing the setup process for the feature to fail. …
Run Code Online (Sandbox Code Playgroud)

sql-server installation sql-server-2017

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

为什么更改声明的连接列顺序会引入排序?

我有两个具有相同名称、类型和索引键列的表。其中一个具有唯一的聚集索引,另一个具有非唯一的.

测试设置

设置脚本,包括一些真实的统计数据:

DROP TABLE IF EXISTS #left;
DROP TABLE IF EXISTS #right;

CREATE TABLE #left (
    a       char(4) NOT NULL,
    b       char(2) NOT NULL,
    c       varchar(13) NOT NULL,
    d       bit NOT NULL,
    e       char(4) NOT NULL,
    f       char(25) NULL,
    g       char(25) NOT NULL,
    h       char(25) NULL
    --- and a few other columns
);

CREATE UNIQUE CLUSTERED INDEX IX ON #left (a, b, c, d, e, f, g, h)

UPDATE STATISTICS #left WITH ROWCOUNT=63800000, PAGECOUNT=186000;

CREATE …
Run Code Online (Sandbox Code Playgroud)

join sql-server sql-server-2014 sort-operator sql-server-2017

42
推荐指数
2
解决办法
1878
查看次数

如何在 SQL Server 2017 中使用 SNAPSHOT_MATERIALIZATION 创建视图?

SQL Server 2017 有几个新的存储过程:

  • sp_refresh_single_snapshot_view – @view_name nvarchar(261) 的输入参数,@rgCode int
  • sp_refresh_snapshot_views – @rgCode int 的输入参数

以及 sys.messages 中的新条目:

  • 10149 – 无法在视图 '%.*ls' 上创建具有 SNAPSHOT_MATERIALIZATION 的索引,因为视图定义包含内存优化表。
  • 10642 – 无法为 '%.*ls' 上的索引 '%.*ls' 设置 SNAPSHOT_MATERIALIZATION,因为它仅适用于视图上的索引。
  • 10643 – 无法为 '%.*ls' 上的 '%.*ls' 设置 SNAPSHOT_MATERIALIZATION,因为它仅适用于视图上的聚集索引。
  • 10648 – 无法为 '%.*ls' 上的分区索引 '%.*ls' 设置 SNAPSHOT_MATERIALIZATION。
  • 10649 – 无法在具有 SNAPSHOT_MATERIALIZATION 的聚集索引 '%.*ls' 的 '%.*ls' 上创建非聚集索引 '%.*ls'。
  • 10650 – 刷新快照视图需要在数据库上启用快照隔离。
  • 3760 – 无法删除具有 SNAPSHOT_MATERIALIZATION 的视图 '%.*ls' 上的索引 '%.*ls'。
  • 4524 – 无法更改视图 '%.*ls',因为它具有快照实现。
  • 4525 – 在刷新视图之前无法对具有快照实现的视图 '%ls' 使用提示 '%ls'。 …

sql-server materialized-view sql-server-2017

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

添加选择时超出自引用标量函数嵌套级别

目的

在尝试创建自引用函数的测试示例时,一个版本失败而另一个版本成功。

唯一的区别是添加SELECT到函数体导致两者的执行计划不同。


起作用的功能

CREATE FUNCTION dbo.test5(@i int)
RETURNS INT
AS 
BEGIN
RETURN(
SELECT TOP 1
CASE 
WHEN @i = 1 THEN 1
WHEN @i = 2 THEN 2
WHEN @i = 3 THEN  dbo.test5(1) + dbo.test5(2)
END
)
END;
Run Code Online (Sandbox Code Playgroud)

调用函数

SELECT dbo.test5(3);
Run Code Online (Sandbox Code Playgroud)

退货

(No column name)
3
Run Code Online (Sandbox Code Playgroud)

不起作用的功能

CREATE FUNCTION dbo.test6(@i int)
RETURNS INT
AS 
BEGIN
RETURN(
SELECT TOP 1
CASE 
WHEN @i = 1 THEN 1
WHEN @i = 2 THEN 2
WHEN @i = 3 …
Run Code Online (Sandbox Code Playgroud)

sql-server functions sql-server-2017

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

SQL Server 返回“将表达式转换为 int 数据类型时出现算术溢出错误”。

当我运行此命令时 SUM()

SELECT COUNT(*) AS [Records], SUM(t.Amount) AS [Total]
FROM   dbo.t1 AS t
WHERE  t.Id > 0
       AND t.Id < 101;
Run Code Online (Sandbox Code Playgroud)

我越来越,

Arithmetic overflow error converting expression to data type int.
Run Code Online (Sandbox Code Playgroud)

关于它的原因是什么的任何想法?

我只是按照这个答案中的说明进行操作。

sql-server aggregate datatypes sql-server-2017

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

在整个数据库中更改 GETDATE() 的使用

我需要将本地 SQL Server 2017 数据库迁移到 Azure SQL 数据库,但我面临着一些挑战,因为要克服很多限制。

特别是,由于 Azure SQL 数据库仅在 UTC 时间(无时区)下工作,而我们需要本地时间,因此我们必须更改数据库中GETDATE() 各处的使用,事实证明,这比我预期的要多。

我创建了一个用户定义的函数来获取适合我的时区的本地时间:

CREATE FUNCTION [dbo].[getlocaldate]()
RETURNS datetime
AS
BEGIN
    DECLARE @D datetimeoffset;
    SET @D = CONVERT(datetimeoffset, SYSDATETIMEOFFSET()) AT TIME ZONE 'Pacific SA Standard Time';
    RETURN(CONVERT(datetime,@D));
END
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是GETDATE()在每个视图、存储过程、计算列、默认值、其他约束等中实际更改此函数。

实施此更改的最佳方法是什么?

我们正处于托管实例的公共预览版中。它仍然有同样的问题GETDATE(),所以它对这个问题没有帮助。迁移到 Azure 是一项要求。这个数据库总是在这个时区使用(并将被使用)。

sql-server azure-sql-database sql-server-2017

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

SQL Server 2017 备份时崩溃,因为文件路径错误

我试图恢复我的数据库和 SQL Server 不断崩溃。我会在 SSMS 中收到一条消息,指出存在网络传输错误(连接因崩溃而中断)。我检查了日志,发现 SQL Server 意外关闭。然后我将不得不去重新启动服务。

我将问题缩小到 GUI 试图运行的脚本。问题是在进行尾日志备份时,备份文件的路径是错误的。它应该是D:\mapbenefits\...

BACKUP LOG [mapbenefits]
TO  DISK = N'D:mapbenefits_LogBackup_2019-02-21_13-58-24.bak'
WITH NOFORMAT, NOINIT,  NAME = N'mapbenefits_LogBackup_2019-02-21_13-58-24',
    NOSKIP, NOREWIND, NOUNLOAD,  NORECOVERY ,  STATS = 5
Run Code Online (Sandbox Code Playgroud)

我有两个问题。

  1. 如何修复此路径?我尝试进入服务器设置,备份路径D:没有斜线。如果我添加斜杠,gui 会将其删除。这是 SSMS v17.9.1。我可以选择D:\mapbenefits\并且有效,但我想要D:\DATABASE\...

  2. 这是一个错误吗?SQL 服务器是否应该因为路径输入错误而崩溃?一旦我修复了文件路径,它就没有问题了。我可以通过整理文件路径随时复制。

如果我运行查询来检查版本,我会得到 CU13,但如果我进入设置,我会看到版本 14.0.1000.169。

看起来这是一个错误并且可以重现,所以我将它发布到这里:https : //feedback.azure.com/forums/908035-sql-server/suggestions/36920542-incorrect-filepath-with-backup-log-command-原因

sql-server backup sql-server-2017

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

如果一个数据库只有一个插入,那么索引每一个可能的列组合是不是很糟糕?

我正在开发一个需要大量选择查询的报告系统,但它基于只填充一次的数据库。数据库管理系统是 Microsoft SQL Server 2017。可能有更好的方法来设计这样的系统,但让我们从理论上来解决这个问题。

理论上来说:

  1. 如果我们有一个非常大的数据库(多个表上的 150M+ 行)
  2. 我们可以假设数据库只会填充一次。

索引每个可能的列组合是否会对选择查询产生负面性能影响?

sql-server t-sql index-tuning sql-server-2017

24
推荐指数
3
解决办法
5063
查看次数

服务器重新启动后,SQL Server 分布式可用性组数据库不同步

我们正准备对我们的 SQL Server执行大规模升级,并注意到分布式可用性组的一些异常行为,我正试图在继续之前解决这些问题。

上个月,我将远程辅助服务器从 SQL Server 2016 升级到 SQL Server 2017。该服务器是多个分布式可用性组 (DAG)和一个单独的可用性组 (AG) 的一部分。当我们升级这台服务器时,我们没有意识到它会进入一个不可读的状态,所以在过去的一个月里,我们一直完全依赖于主服务器。

作为即将进行的升级的一部分,我将CU 4补丁应用到服务器并重新启动它。当服务器重新上线时,刚刚打补丁的辅助服务器显示所有 DAG/AG 都在同步,没有任何问题。

然而,初选展示了一个非常不同的故事。报道称

  • 单独的 AG 同步没有任何问题
  • 但 DAG 处于不同步/不健康状态

在最初感到恐慌之后,我尝试了以下方法来使 DAG 中的事物再次同步:

  • 从主数据库中,我停止并恢复了数据移动。这并没有开始同步数据。
  • 在二级(我刚刚修补的那个)上我跑了ALTER DATABASE [<database] SET HADR RESUME;- 执行没有错误,但没有恢复任何同步

我最后一次再次同步数据的尝试是登录到辅助服务器,然后手动重新启动 SQL Server 服务。手动重新启动服务似乎有点极端,因为我希望重新启动服务器就足够了。

有没有人遇到过重启后 DAG 没有开始同步到辅助节点的问题?如果有,是如何解决的?

我检查了 SQL Server 错误日志和辅助服务器上的事件查看器,没有发现任何异常。

sql-server upgrade availability-groups sql-server-2017 distributed-availability-groups

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

为什么具有聚集列存储索引的表会有许多打开的行组?

我昨天在查询时遇到了一些性能问题,经过进一步调查,我注意到我认为我试图深入了解聚集列存储索引的奇怪行为。

该表是

CREATE TABLE [dbo].[NetworkVisits](
    [SiteId] [int] NOT NULL,
    [AccountId] [int] NOT NULL,
    [CreationDate] [date] NOT NULL,
    [UserHistoryId] [int] NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

与索引:

CREATE CLUSTERED COLUMNSTORE INDEX [CCI_NetworkVisits] 
   ON [dbo].[NetworkVisits] WITH (DROP_EXISTING = OFF, COMPRESSION_DELAY = 0) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

该表目前有 13 亿行,我们不断向其中插入新行。当我说不断时,我的意思是一直。这是一次向表中插入一行的稳定流程。

Insert Into NetworkVisits (SiteId, AccountId, CreationDate, UserHistoryId)
Values (@SiteId, @AccountId, @CreationDate, @UserHistoryId)
Run Code Online (Sandbox Code Playgroud)

执行计划在这里

我还有一个每 4 小时运行一次的预定作业,用于从表中删除重复的行。查询是:

With NetworkVisitsRows
  As (Select SiteId, UserHistoryId, Row_Number() Over (Partition By SiteId, UserHistoryId
                                    Order By CreationDate Asc) RowNum
        From NetworkVisits
       Where CreationDate …
Run Code Online (Sandbox Code Playgroud)

sql-server columnstore sql-server-2017

21
推荐指数
2
解决办法
1249
查看次数