标签: sql-server-2017

如何在SQL Server中找到正在运行的跟踪?

有没有一种简单的方法来确定sp_trace_createSQL Server 2000上已设置了哪些跟踪?SQL Server 2005,2008,2012或2014怎么样?

sql-server sql-server-2005 sql-server-2008 sql-server-2012 sql-server-2017

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

STRING_AGG表现不尽如人意

我有以下查询:

WITH cteCountryLanguageMapping AS (
    SELECT * FROM (
        VALUES
            ('Spain', 'English'),
            ('Spain', 'Spanish'),
            ('Sweden', 'English'),
            ('Switzerland', 'English'),
            ('Switzerland', 'French'),
            ('Switzerland', 'German'),
            ('Switzerland', 'Italian')
    ) x ([Country], [Language])
)
SELECT
    [Country],
    CASE COUNT([Language])
        WHEN 1 THEN MAX([Language])
        WHEN 2 THEN STRING_AGG([Language], ' and ')
        ELSE STRING_AGG([Language], ', ')
    END AS [Languages],
    COUNT([Language]) AS [LanguageCount]
FROM cteCountryLanguageMapping
GROUP BY [Country]
Run Code Online (Sandbox Code Playgroud)

我期待瑞士的Languages栏中的值以逗号分隔,即:

  | Country     | Languages                                 | LanguageCount
--+-------------+-------------------------------------------+--------------
1 | Spain       | Spanish and English                       | 2
2 | Sweden      | …
Run Code Online (Sandbox Code Playgroud)

sql sql-server string-aggregation sql-server-2017

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

CLR在SQL Server 2017上的严格安全性

MSDN对这篇文章说:

CLR使用.NET Framework中的代码访问安全性(CAS),不再支持它作为安全边界.使用PERMISSION_SET = SAFE创建的CLR程序集可能能够访问外部系统资源,调用非托管代码以及获取sysadmin权限.从SQL Server 2017开始,引入了名为clr strict security的sp_configure选项,以增强CLR程序集的安全性.默认情况下启用clr严格安全性,并将SAFE和EXTERNAL_ACCESS程序集视为标记为UNSAFE.可以禁用clr strict security选项以实现向后兼容性,但不建议这样做.Microsoft建议所有程序集都由证书或非对称密钥签名,并且相应的登录名已在master数据库中被授予UNSAFE ASSEMBLY权限.

如何创建CLR程序集PERMISSION_SET = SAFE可以访问外部系统资源,调用非托管代码以及获取sysadmin权限?

为什么不再支持CAS作为安全边界?

据我所知,CLR组件不再安全,这是非常不幸的.

.net sql-server sqlclr code-access-security sql-server-2017

14
推荐指数
2
解决办法
8660
查看次数

安装SSDT时出错(SQL Server数据工具)

我在安装Visual Studio 2017的SQL Server数据工具时遇到问题

我收到以下错误(已翻译):

The requested meta file operation is not supported (0x800707D3)
Run Code Online (Sandbox Code Playgroud)

截图:见这里

日志文件可在此处获取:https: //www.dropbox.com/s/e34kry9ycj76j7n/SSDT-Setup-ENU_20171219090643.log?dl = 0

这是链接日志文件中的相关部分:

[13C4:3020][2017-12-19T10:07:22]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:07:22]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:07:22]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:07:22]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:08:49]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:08:51]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:08:51]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:08:51]i000: …
Run Code Online (Sandbox Code Playgroud)

sql ssms sql-server-data-tools visual-studio-2017 sql-server-2017

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

新SQL Server安装 - 尝试执行未经授权的操作

我有一台新的Windows 10 Home机器,我想安装SQL服务器.我已经安装了Visual Studio 2017和SSMS 2017(我最初安装了SQL).

在第一次尝试时,我收到此错误:

VS Shell安装失败,退出代码为1638

并发现我需要卸载Microsoft Visual C++ 2017 Redistributable(x86)和(x64),安装SQL Server,然后重新安装Microsoft Visual C++ 2017 Redistributable(x86)和(x64).如此处所见

然后我收到了这个错误:

试图执行未经授权的操作

在此输入图像描述

  1. 我尝试了此链接的注册表项权限
  2. 我尝试编辑我的本地组策略,但Win 10没有.
  3. 我尝试退出所有防火墙和反恶意软件.

我一直在尝试安装SQL Server 4周

编辑:

我找到了日志,但错误似乎相同:

在此输入图像描述

installation visual-studio-2017 sql-server-2017

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

SQL Server 2014安装卡住(挂起)或需要很长时间才能完成

我正在尝试安装SQL Server 2014,但它在相同位置(Install_VCRuntime_Cpu32_Action)保持数小时.这已经是我第三次尝试安装,所以我不知道还能做什么.

SQL Server 2014安装

在此输入图像描述

更新[19/6月/ 18]:今天我的一位同事也面临着与SQL Server 2017安装程序安装程序相同的问题.

sql-server installation sql-server-2014 sql-server-2017

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

SQL Server 2017相对路径问题

迁移到SQL Server 2017后遇到了有趣的问题.

绝对路径测试

backup database master to disk = 'C:\Temp\1\2\3\master.bak'
Run Code Online (Sandbox Code Playgroud)

按预期在C:\ Temp\1\2\3 \中创建备份.

相对路径测试#1

backup database master to disk = 'C:\Temp\1\2\3\..\master.bak'
Run Code Online (Sandbox Code Playgroud)

备份在C:\ Temp \中创建

预计:C:\ Temp\1\2 \

相对路径测试#2

backup database master to disk = 'C:\Temp\11\22\33\..\master.bak'
backup database master to disk = 'C:\Temp\111\222\333\..\master.bak'
backup database master to disk = 'C:\Temp\bin\bin\bin\..\master.bak'
Run Code Online (Sandbox Code Playgroud)

备份在文件夹C:\ Temp\11 \,C:\ Temp\111 \,C:\ Temp\bin \中创建

预期:分别为C:\ Temp\11\22 \,C:\ Temp\111\222 \和C:\ Temp\bin\bin \.

相对路径测试#3

backup database master to disk = 'C:\Temp\Folder1\Folder2\Folder3\..\master.bak'
backup database master to disk = 'C:\Temp\1111\2222\3333\..\master.bak'
Run Code Online (Sandbox Code Playgroud)

按预期分别在文件夹C:\ …

sql-server windows-server-2016 sql-server-2017

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

保留UnionAggregate中的起始点

DECLARE @Geom TABLE 
( 
   shape geometry, 
   shapeType nvarchar(50) 
); 

INSERT INTO @Geom(shape,shapeType) 
VALUES('LINESTRING(1 2, 3 4)', 'A'), 
('LINESTRING(3.2 4, 7 8)', 'B'); 

SELECT *
FROM @Geom

SELECT geometry::UnionAggregate(shape).ToString(), geometry::UnionAggregate(shape)
FROM @Geom;

Run Code Online (Sandbox Code Playgroud)

输出的WKT是

MULTILINESTRING ((7 8, 3.2 4), (3 4, 1 2))

当我想要的时候

MULTILINESTRING ((1 2, 3 4), (3.2 4, 7 8))

其中"A"和"B"行的开始应该是(1 2)(3.2 4)尊敬.

这种行为UnionAggregate似乎并不关心几何的"方向",以便维持A联合B和B联合A是相同的结果.不过,我想保留的开始/终点,因为我unioning街道几何,我希望所有的线串在其原来的方向去了.

这里讨论这个问题:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/89e95366-3649-4294-a0bc-f3921598157f/union-of-linestrings-and-reversing-direction?forum= sqlspatial

他们似乎建议在检查最终结果的可能解决方案,但我不清楚如何做到这一点.它是在一个链接的线程中暗示的

MultiLineString始终表示距离原点最远的点的图形.

我不清楚这究竟意味着什么,但我认为我不能假设UnionAggregate的结果总是与我想要的相反

如果很难知道方向意图,那么我可以添加M个度量,其中方向应该跟随增加的M值.

假设我有一种方法可以反转积分,我该如何解决这个问题呢?

我找到了一个模拟STUnionZ和M测量的附加支持的功能:http://www.spatialdbadvisor.com/files/SQLServer.html#robo48但是注意到"他们的方向可能会改变(例如,开始/起点关系) ).",这是我想要避免的.

t-sql sql-server geometry spatial sql-server-2017

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

为什么合并到历史表中具有非聚集索引的时态表会引发错误

当我尝试在某些条件下合并时,出现以下错误。有人能够解释为什么吗?看起来这是SQL Server本身的问题,但我想在这里发布它来确认。

尝试将不可为 NULL 的列的值设置为 NULL。

  1. 目标表必须进行版本控制
  2. 历史表必须有非聚集索引
  3. 必须插入足够的记录。在下面的示例中,合并 2731 条记录失败,但合并 2730 条记录就好了

我正在使用 SQL Server 2017,但也在 Azure SQL 中观察到它

BEGIN TRANSACTION
SET XACT_ABORT ON;

CREATE TABLE RandomNumberHistory (Id INT NOT NULL, Number INT NOT NULL, [ValidFrom] DATETIME2 NOT NULL, [ValidTo] DATETIME2 NOT NULL);
CREATE TABLE RandomNumber (Id INT NOT NULL PRIMARY KEY CLUSTERED IDENTITY, Number INT NOT NULL, 
    ValidFrom DATETIME2 GENERATED ALWAYS AS ROW START, 
    ValidTo DATETIME2 GENERATED ALWAYS AS ROW END, 
    PERIOD FOR SYSTEM_TIME (ValidFrom, ValidTo),
)
WITH …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-merge azure-sql-database sql-server-2017 temporal-tables

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

在STRING_AGG中产生DISTINCT值

我在SQL Server 2017中使用STRING_AGG函数。我想创建与相同的效果COUNT(DISTINCT <column>)。我试过了,STRING_AGG(DISTINCT <column>,',')但这不是合法的语法。

我想知道是否有T-SQL解决方法。这是我的样本:

WITH Sitings 
  AS
  (
    SELECT * FROM (VALUES 
      (1, 'Florida', 'Orlando', 'bird'),
      (2, 'Florida', 'Orlando', 'dog'),
      (3, 'Arizona', 'Phoenix', 'bird'),
      (4, 'Arizona', 'Phoenix', 'dog'),
      (5, 'Arizona', 'Phoenix', 'bird'),
      (6, 'Arizona', 'Phoenix', 'bird'),
      (7, 'Arizona', 'Phoenix', 'bird'),
      (8, 'Arizona', 'Flagstaff', 'dog')
    ) F (ID, State, City, Siting)
  ) 
SELECT State, City, COUNT(DISTINCT Siting) [# Of Types], STRING_AGG(Siting,',') Animals
FROM Sitings 
GROUP BY State, City
Run Code Online (Sandbox Code Playgroud)

上面产生了以下结果:

+---------+-----------+--------------+-------------------------+
|  State  |   City    | …
Run Code Online (Sandbox Code Playgroud)

sql sql-server distinct string-aggregation sql-server-2017

9
推荐指数
4
解决办法
7455
查看次数