标签: sql-server-2016

SQL Server始终使用.NET Core加密不兼容

我正在尝试使用带有.NET Core的SQL Server 2016的Always Encrypted功能,并且似乎无法使用(还).试图Microsoft.SqlServer.Management.AlwaysEncrypted.AzureKeyVaultProvider从Nuget 导入,我得到一个错误,说明它不兼容:

包Microsoft.SqlServer.Management.AlwaysEncrypted.AzureKeyVaultProvider 1.0.201501028与netstandard1.6不兼容(.NETStandard,Version = v1.6)

有关如何/在何处获得兼容版本的任何想法?

sql-server .net-core sql-server-2016 always-encrypted

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

Visual Studio 2015 SSIS - SSIS工具箱中未选择自定义SSIS组件

我在Visual Studio 2015中向SSIS添加自定义SSIS组件时遇到问题.

我的系统是:Windows 8.1 64位

Visual Studio Community 2015版本14.0.24720.00更新1

微软SQL Server集成服务Designer版本13.0.900.80(我已经安装了SQL服务器2016 CTP3.2所以SSIS的版本是这样的版本 - 这可能是问题的一部分,它不是一个完全发布的产品,这可能是个bug)

Microsoft .NET Framework版本4.6.01055

我尝试过使用110和120的程序集.我已经将两个dll添加到GAC中,将它们放在x86和x64文件夹中(见下文),其中包含不同的强签名.

110个程序集c:\ Program Files(x86)\ Microsoft SQL Server\110\DTS\PipelineComponents c:\ Program Files\Microsoft SQL Server\110\DTS\PipelineComponents

120个组件C:\ Program Files文件(x86)的\ Microsoft SQL Server的\ 120个\ DTS\PipelineComponents C:\ Program Files文件\ Microsoft SQL Server的\ 120个\ DTS\PipelineComponents

我研究了这个问题,但找不到任何明确的问题答案.人们似乎提出问题,得到一些回复,然后没有回应告诉任何人如何解决这个问题,如下面的帖子.

Visual Studio 2015 Integration Services项目不会选择我的自定义SSIS组件

与原始帖子的唯一区别是我正在使用SQL Server数据工具预览版(12月)进行Visual Studio 2015,但这应该无关紧要吗?

我试过更改项目中引用的程序集.在尝试我自己的代码之后,我找到了以下页面,该页面描述了如何开始构建自定义SSIS组件并且无需进行太多工作构建它,将dll添加到GAC和相应的DTS文件夹.

https://www.simple-talk.com/sql/ssis/developing-a-custom-ssis-source-component/

真正有用的是开发一个安装程序,它可以获取系统设置,安装到GAC,并将dll复制到正确的文件夹,以便SSIS工具箱选择它.这几乎就像微软希望尽可能地创建和安装新的SSIS组件一样.

我有这样的问题:1.我应该在Visual Studio 2015中为SSIS组件使用什么版本的.NET?2.我应该使用什么版本的gacutil(我听说这很重要)?3.需要将哪个文件夹放入SSIS工具箱中以便拾取.4.我应该将dll放在x86或x64文件夹中吗?我的系统是x64,但Visual Studio exe是一个x86可执行文件,所以我猜x86文件夹是正确的.5.如果我将dll放在多个文件夹中,这有关系吗?5.有没有人真正设法在Visual Studio 2015中添加自定义SSIS组件?

任何帮助或评论将不胜感激.

马特

c# sql-server ssis visual-studio-2015 sql-server-2016

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

无法将SQL Azure bacpac导入2016 CTP

我非常熟悉从Azure SQL V12导出到我的开发框,然后导入到我的本地sql(2014)实例的过程.我正在启动一个新的Win10盒子并安装了SQL 2016 CTP.我正在连接到同一个Azure实例并且可以对其进行操作 - 并且可以像2014年一样导出.bacpac.

但是,当我尝试导入到本地时,我得到:

Could not import package.
Warning SQL72012: The object [FOO33_Data] exists in the target, but it will not be dropped even though you selected the 'Generate drop statements for objects that are in the target database but that are not in the source' check box.
Warning SQL72012: The object [FOO33_Log] exists in the target, but it will not be dropped even though you selected the 'Generate drop statements for objects that are in …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2016 azure-sql-database

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

选择二进制排序规则,可以区分Sql Server中nvarchar列的'ss'和'ß'

作为默认的SQL_Latin1_General_CP1_CI_ASSQL服务器的排序规则不能区分ssß,我想换一个特定列的排序规则在表中SQL_Latin1_General_CP437_BIN2,如建议在这里.

但是,我不确定这是否通常是一种好的做法.此外,我不确定除以下之外的其他影响:

  • 更改排序顺序:由于我从不对此列上的数据进行排序,因此对我来说可能不是问题.但是,如果您不这么认为,请告诉我.
  • 不区分大小写区分大小写敏感:由于我的应用程序始终以小写形式提供文本,我认为这种改变对我来说也不会成为问题.但是,如果您不这么认为,请告诉我.

我很好奇这个变化的其他主要影响,如果有的话.

此外,我还想知道以下哪一个最适合这种情况:

SQL_Latin1_General_CP437_BIN

描述: Latin1-常规,Unicode数据的二进制排序,SQL Server在代码页437上的排序顺序30用于非Unicode数据


SQL_Latin1_General_CP437_BIN2

描述: Latin1-常规,Unicode数据的二进制代码点比较排序,SQL Server在代码页437上的排序顺序30用于非Unicode数据


SQL_Latin1_General_CP850_BIN

描述: Latin1-常规,Unicode数据的二进制排序,SQL Server在代码页850上的排序顺序40,用于非Unicode数据


SQL_Latin1_General_CP850_BIN2

描述: Latin1-常规,Unicode数据的二进制代码点比较排序,SQL Server在代码页850上的排序顺序40,用于非Unicode数据

如果您认为其他排序规则更适合此方案,请同时提及这些排序规则.


2017年3月19日更新: 对于提出此问题的任何人:

  • 必须检查@srutzky和@SqlZim的答案,以及相关的引用资源.在这种情况下,你不想急于做事.
  • 由于更改排序规则不适合胆小鬼:P,保留表数据的备份可能会派上用场.
  • 还要检查列的依赖关系,例如索引和约束; 你可能需要删除并创建那些,就像我的情况一样.

玩得开心 :)

t-sql sql-server unicode collation sql-server-2016

11
推荐指数
2
解决办法
3229
查看次数

JSON 文本格式不正确。在位置 0 处发现意外字符“N”

我是 SQL 中 JSON 的新手。我收到错误“JSON 文本格式不正确。在位置 0 处发现意外字符“N”。” 执行以下操作时 -

DECLARE @json1 NVARCHAR(4000)
set @json1 = N'{"name":[{"FirstName":"John","LastName":"Doe"}], "age":31, "city":"New York"}'
DECLARE @v NVARCHAR(4000)
set @v = CONCAT('N''',(SELECT value FROM OPENJSON(@json1, '$.name')),'''')
--select @v as 'v'
SELECT  JSON_VALUE(@v,'$.FirstName')
Run Code Online (Sandbox Code Playgroud)

“ select @v as 'v' ”给了我

N'{"FirstName":"John","LastName":"Doe"}'
Run Code Online (Sandbox Code Playgroud)

但是,在最后一个 select 语句中使用它会给我错误。

DECLARE @v1 NVARCHAR(4000)
set @v1 = N'{"FirstName":"John","LastName":"Doe"}'
SELECT  JSON_VALUE(@v1,'$.FirstName') as 'FirstName'
Run Code Online (Sandbox Code Playgroud)

也工作正常。

json sql-server-2016 sql-server-json

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

聚集的列存储索引是否影响SSAS查询最终用户性能

集群列存储索引是否影响最终用户的SSAS性能查询,如何解决此问题?在此处阅读下面的文章,排序顺序如何影响SSAS查询客户用户的性能。

有什么办法解决这个问题?

重建SSAS索引/汇总是否可行?已经知道从数据仓库到SSAS处理多维数据集的时间可能会受到影响。真正关心的是最终客户-用户SSAS查询体验。

当前在SSAS Cube中实现多维模型。

sql-server ssas performance-testing sql-server-2016 ssas-2016

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

SQL Server 2016 for JSON输出整数数组

我想使用SQL Server 2016的For JSON功能获取带有整数数组的JSON .我对整数数组感到困惑.

数据库表结构:

declare @Employees table (ID int, Name nvarchar(50))
insert into @Employees values
(1, 'Bob'),
(2, 'Randy')

declare @Permissions table (ID int, PermissionName nvarchar(50))
insert into @Permissions values
(1, 'Post'),
(2, 'Comment'),
(3, 'Edit'),
(4, 'Delete')

declare @EmployeePermissions table (EmployeeID int, PermissionID int)
insert into @EmployeePermissions values
(1, 1),
(1, 2),
(2, 1),
(2, 2),
(2, 3)
Run Code Online (Sandbox Code Playgroud)

期望的结果:

{"EmployeePermissions": [
  {"Employee":"Bob", "Permissions":[1,2]},
  {"Employee":"Randy", "Permissions":[1,2,3]}
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的最接近的,但不是我想要的.

select
    e.Name as Employee,
    (select 
         convert(nvarchar(10),ep.PermissionID) as PermID …
Run Code Online (Sandbox Code Playgroud)

sql-server arrays json sql-server-2016

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

根据MSDN的指导,TSQL RaiseError语法不正确

MSDN声明以下语法:

RAISERROR ( { msg_id | msg_str | @local_variable }  
{ ,severity ,state }  
[ ,argument [ ,...n ] ] )  
[ WITH option [ ,...n ] ] 
Run Code Online (Sandbox Code Playgroud)

msg_str预计一个字符串,最多2047个字符,但截断长字符串.它还可以替换参数,这会截断消息,而不是值提供的字符数:

错误消息最多可包含2,047个字符.如果消息包含2,048个或更多字符,则仅显示前2,044个字符,并添加省略号以指示消息已被截断.请注意,由于内部存储行为,替换参数消耗的字符数多于输出显示的字符数.例如,%d的替换参数(指定值为2)实际上会在消息字符串中生成一个字符,但内部还会占用另外三个存储字符.此存储要求会减少消息输出的可用字符数.指定msg_str时,RAISERROR会引发错误消息,错误编号为50000.

severity预计25 0之间的数字,但更正其他号码:

任何用户都可以指定从0到18的严重级别.从19到25的严重级别只能由sysadmin固定服务器角色的成员或具有ALTER TRACE权限的用户指定.对于从19到25的严重性级别,需要WITH LOG选项.严重级别小于0将被解释为0.严重级别大于25将被解释为25.

state预计值0到255,但校正零度以下的值:

[state]是0到255之间的整数.负值默认为1.不应使用大于255的值.


问题

运行这些查询时出现以下错误:

RAISEERROR('Test', 20, 1);
Run Code Online (Sandbox Code Playgroud)

Msg 102,Level 15,State 1,Line 1

'Test'附近的语法不正确.


DECLARE @err_message nvarchar(255);
SET @err_message = 'Test';
RAISEERROR(@err_message, 20, 1);
Run Code Online (Sandbox Code Playgroud)

Msg 102,Level 15,State 1,Line 3

'RAISEERROR'附近的语法不正确.


我可以很好地执行各种其他查询.例如:

THROW 50001, 'Test', 1;
Run Code Online (Sandbox Code Playgroud)

Msg 50001,Level 16,State 1,Line …

sql t-sql sql-server raiserror sql-server-2016

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

为什么没有使用columnstore索引

我在SQL Server 2016 Enterprise Edition上的40m记录非内存优化表的所有列上都有一个非聚集列存储索引.

强制使用columnstore索引的查询将执行得更快,但优化器继续选择使用聚簇索引和其他非聚簇索引.我有很多可用的RAM,并且正在对维度模型使用适当的查询.

为什么优化器不会选择columnstoreindex?我怎样才能鼓励它的使用(不使用提示)?

以下是不使用columnstore的示例查询:

SELECT
  COUNT(*),
  SUM(TradeTurnover),
  SUM(TradeVolume)
FROM DWH.FactEquityTrade e
--with (INDEX(FactEquityTradeNonClusteredColumnStoreIndex))
JOIN DWH.DimDate d
  ON e.TradeDateId = d.DateId
 JOIN DWH.DimInstrument i
  ON i.instrumentid = e.instrumentid
WHERE d.DateId >= 20160201
AND i.instrumentid = 2
Run Code Online (Sandbox Code Playgroud)

没有提示需要7秒,提示需要几分之一秒.没有提示的查询计划在这里.带有提示的查询计划在这里.

列存储索引的create语句是:

CREATE NONCLUSTERED COLUMNSTORE INDEX [FactEquityTradeNonClusteredColumnStoreIndex] ON [DWH].[FactEquityTrade]
(
    [EquityTradeID],
    [InstrumentID],
    [TradingSysTransNo],
    [TradeDateID],
    [TradeTimeID],
    [TradeTimestamp],
    [UTCTradeTimeStamp],
    [PublishDateID],
    [PublishTimeID],
    [PublishedDateTime],
    [UTCPublishedDateTime],
    [DelayedTradeYN],
    [EquityTradeJunkID],
    [BrokerID],
    [TraderID],
    [CurrencyID],
    [TradePrice],
    [BidPrice],
    [OfferPrice],
    [TradeVolume],
    [TradeTurnover],
    [TradeModificationTypeID],
    [InColumnStore],
    [TradeFileID],
    [BatchID],
    [CancelBatchID]
) …
Run Code Online (Sandbox Code Playgroud)

sql-server indexing query-performance columnstore sql-server-2016

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

数据分析任务 - 自定义配置文件请求

是否有任何选项可以为SSIS数据分析任务创建自定义配置文件请求?

目前,在SSIS数据分析任务下有5个标准配置文件请求:

  1. 列空比率配置文件请求
  2. 列统计信息配置请求
  3. 列长度​​分布配置文件请求
  4. 列值分布配置文件请求
  5. 候选人密钥概况请求

我需要添加另一个(自定义一个)来获取所有数值的摘要.

在此先感谢您的帮助.

sql-server ssis etl data-profiling sql-server-2016

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