标签: sql-server-2016

SQL Server 2016 中的 STRING_AGG 替换

我想聚合单列值,中间有分隔符并带有一些前缀。下面是尝试过的有效代码。

SELECT concat('TNB/IAG/',STRING_AGG(WF_ValStr, '/')) AS Result
    FROM wfattrdata where wf_id=35262472 and  WF_AttrID in (28,29,30,31,33);
Run Code Online (Sandbox Code Playgroud)

我可以在最新的 MSSql 版本中得到以下预期结果。

TNB/IAG/1/2/3/4/5
Run Code Online (Sandbox Code Playgroud)

如何替换上述查询以使其在 SQL Server 2016 中工作?

t-sql sql-server string-aggregation sql-server-2016

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

为什么默认情况下所有表都不是时态表?

我正在创建一个新数据库并计划使用时态表来记录所有更改。存储的数据每天更新,但每表不超过5000条记录

我有什么理由不应该将所有表设为临时表吗?

诗。我知道时态表的空间使用情况,据我所知,这不是一个问题

sql sql-server-2016

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

#SSMS 内置报告中的错误

在我的本地计算机上,我使用 SQL Server 2016 Management Studio 客户端 (SSMS) 连接到远程计算机上安装的 SQL Server。我使用 Windows 身份验证方法进行连接。

\n\n

安装在我的本地计算机上的 My SQL Server Management Studio 2016 显示安装的以下版本:

\n\n
Microsoft SQL Server Management Studio                      13.0.16100.1\nHerramientas cliente de Microsoft Analysis Services         13.0.1700.441\nMicrosoft Data Access Components (MDAC)                     10.0.17763.1\nMicrosoft MSXML                                             3.0 4.0 5.0 6.0 \nMicrosoft Internet Explorer                                 9.11.17763.0\nMicrosoft .NET Framework                                    4.0.30319.42000\nSistema operativo                                           6.3.17763\n
Run Code Online (Sandbox Code Playgroud)\n\n

远程计算机上安装的SQL Server版本如下:

\n\n

在此输入图像描述

\n\n

当我构建报告时,我会在上面打印很多“#Error”。例如,要构建有关所有被阻止事务的报告,我转到服务器节点 -> 报告 -> 标准报告 -> 活动 \xe2\x80\x93 所有被阻止的事务。它显示“#Error”,请参见下面的屏幕截图(在此屏幕截图中没有阻塞事务):

\n\n

在此输入图像描述

\n

ssms sql-server-2016 ssms-2016

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

参数@objname不明确或声明的@objtype (INDEX)错误

使用 SQL Server 2016,当我运行此命令时:

SELECT * 
FROM sys.indexes 
WHERE name = 'idx_Parts_PartNum'
Run Code Online (Sandbox Code Playgroud)

有一个结果。正如预期的那样。但是当我在同一个数据库上运行时:

    exec sp_rename N'idx_Parts_PartNum', N'ux_Parts_PartNum', N'INDEX'
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

参数@objname 不明确或声明的@objtype (INDEX) 错误。

如果第一个查询显示该索引名称是正确的,什么会导致此错误?

我用谷歌搜索没有运气。我的索引名称不包含无效字符或保留字。

注意:这是作为唯一索引创建的,而不是唯一约束。

我可以使用 SQL Server Management Studio 重命名索引,不会出现错误。

sql-server sql-server-2016

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

如果我对 pyodbc 连接设置了 autocommit=True ,我可以假设我不必在更新或插入后进行游标提交吗?

我有下面的示例代码。最后一行之后我还需要游标提交吗?如果这很重要的话,我正在针对 SQL Server 2016 DB 主机运行。

import pyodbc
cnxn = pyodbc.connect('Driver=SQL Server;Server=localhost;Database=mydb;Trusted_Connection=yes;')
cnxn.autocommit = True
cursor = cnxn.cursor()
cursor.execute('update mytable set myfield=1')
Run Code Online (Sandbox Code Playgroud)

sql pyodbc python-3.x sql-server-2016

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

SQL拒绝负载测试中的连接

我在我的系统上运行负载测试.在某个加载级别,我开始在日志中收到SQL错误:

System.Data.SqlClient.SqlException(0x80131904):建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供者:命名管道Prprovidererror:40 - 无法连接到SQL Server)---> System.ComponentModel.Win32Exception(0x80004005):找不到网络路径

通过在有问题的SQL服务器上运行性能监视器,我发现了以下内容:

  • CPU级别很少超过50%.(在上一次迭代中,我看到它最大值为100%,因此我增加了VM的规格,这有助于将问题推向更高的负载水平.)
  • 用户连接数超过8,000.Sql Server的默认设置为32,767个最大连接数.
  • 连接字符串指定每个数据库的最大池大小为1000个连接,并且服务器上有100个数据库.负载测试在100个数据库之间随机分布,因此应该有相当均匀的分布,这意味着每个数据库大约有80个连接.没有接近1k的限制.

还有哪些因素可能会导致Sql Server无法接受连接?

更新:额外信息:我正在使用Entity Framework Core(EF7)进行数据库连接,如果有帮助的话.

c# sql-server tcp load-testing sql-server-2016

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

Microsoft.SqlServer.ManagedDTS.dll SQL Server 2016位置

我安装了SQL Server 2016 Dev以及所有项目和选项(包括Client SDK).

但是Microsoft.SqlServer.ManagedDTS.dll缺少了.

在哪里可以找到在VB项目中引用此dll的dll?

在此输入图像描述

win 7机器这样做了

vb.net sql-server dll ssis sql-server-2016

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

我可以在SQL Server 2016中提高此JSON转换的性能吗?

我有一个类似于下面的表(下面的代码创建一个名为#Temp的表.这有160,000行,这与我在真实数据集中使用的行数大致相同,但真实数据集中有更多列):

/* Create dummy employees*/

;WITH employeeNumbers
AS ( SELECT 1 AS employeeId
     UNION ALL
     SELECT employeeNumbers.employeeId + 1
     FROM   employeeNumbers
     WHERE  employeeNumbers.employeeId < 16000 )
SELECT *
INTO   #employeeId
FROM   employeeNumbers
OPTION ( MAXRECURSION 16000 )


/*Create saleItems*/
CREATE TABLE #SalesItems
    (
        category VARCHAR(100)
      , subCategory VARCHAR(100)
      , productName VARCHAR(1000)
    )
INSERT INTO #SalesItems ( category
                        , subCategory
                        , productName )
VALUES ( 'Furniture', 'Bookcases', 'Bush Somerset Collection Bookcase' )
     , ( 'Furniture', 'Chairs', 'Hon Deluxe Fabric Upholstered Stacking …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server json sql-server-2016

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

无法安装SSMS:挂起的重启阻止安装程序完成

SSMS版本:17.7 在此处输入图片说明

日志文件:Log_file

我有SQL Server 2016和Visual Studio 2017社区版。我尝试重新安装两个工具,但错误仍然相同。一些链接提到了注册表值,我也尝试过这样做,但是问题仍然存在。

我已多次重启系统,但仍显示重启中。我在某些站点上找到了其他两种方法,也尝试了它们,但是仍然显示错误消息。

它停止在下面显示的点上-由于我正在使用VS2017,因此不确定Visual Studio 2015。我也尝试修复VS和SQL Server 2017。 在此处输入图片说明

sql-server ssms sql-server-2016 ssms-2016

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

为什么MS-SQL-Server(所有版本)将1.0/12.0转换为数字(8,6)?

我试图解释101.10的价值差异.

303'300'000/12约为25'275'000.
但是,根据MS-SQL,它是25'274'898.90.

考虑这个(愚蠢的)SQL语句:

SELECT 
     303300000.00/12.0 AS a 
    ,1.0/12.0*303300000.00 AS b
    ,1.0/12.0 AS omg 
    ,1.0/CAST(12.0 AS float) AS expected 
    ,0.083333*303300000.0 AS r1 
    ,0.083333333333333300 * 303300000.0 AS r2
Run Code Online (Sandbox Code Playgroud)

惊人的结果

我以为自从我写了1.0/12.0后它就会变成浮动
(这本身是愚蠢的,但这是另一个故事),
但显然,它是decimal (8,6)

CREATE VIEW dbo._Test
AS
SELECT 1.0/12.0 as xxx



SELECT 
     COLUMN_NAME
    ,DATA_TYPE
    ,NUMERIC_PRECISION
    ,NUMERIC_SCALE
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '_Test' 


DROP VIEW dbo._Test
Run Code Online (Sandbox Code Playgroud)

这种疯狂有什么理由吗?
它如何确定精度?
有没有强制浮动的符号,而不需要演员声明?

如果我在PostgreSQL上运行相同的查询,pg就是正确的...

postgre做对了

sql t-sql sql-server sql-server-2008 sql-server-2016

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