我正在尝试使用带有.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)
有关如何/在何处获得兼容版本的任何想法?
我在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组件?
任何帮助或评论将不胜感激.
马特
我非常熟悉从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_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日更新: 对于提出此问题的任何人:
玩得开心 :)
我是 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)
也工作正常。
集群列存储索引是否影响最终用户的SSAS性能查询,如何解决此问题?在此处阅读下面的文章,排序顺序如何影响SSAS查询客户用户的性能。
有什么办法解决这个问题?
重建SSAS索引/汇总是否可行?已经知道从数据仓库到SSAS处理多维数据集的时间可能会受到影响。真正关心的是最终客户-用户SSAS查询体验。
当前在SSAS Cube中实现多维模型。
sql-server ssas performance-testing sql-server-2016 ssas-2016
我想使用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) 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 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
是否有任何选项可以为SSIS数据分析任务创建自定义配置文件请求?
目前,在SSIS数据分析任务下有5个标准配置文件请求:
我需要添加另一个(自定义一个)来获取所有数值的摘要.
在此先感谢您的帮助.