标签: sql-server-2016

LocalDB父实例版本无效:MSSQL13E.LOCALDB

我无法在开发人员计算机上添加数据库.我正在运行win 10,visual studio 2015.我重新安装了SQL Server 2016两次,最后一次禁用防火墙它最终都给了绿色标记.

虽然我可以在VS2015 SQL Server对象资源管理器中创建数据库.我无法通过解决方案资源管理器将SQL数据库(S)添加到我的项目中.

每次我尝试将数据库添加到项目时,我都会收到事件527 SQLLocalDB 12.0 LocalDB父实例版本无效:MSSQL13E.LOCALDB

我尝试过Start> Run> cmd> sqlcmd -L,它显示了我的SQLserver

还确保它使用正确的端口作为(为什么我得到"无法连接到服务器 - 与网络相关或特定于实例的错误"?)

我认为SQL安装正确,但有些东西不允许我添加数据库(可能是因为某些根数据库??缺少或所以我不确定我不是SQL上的导出,但是因为错误说某些数据库接缝丢失了? ?

visual-studio-2015 sql-server-2016

15
推荐指数
4
解决办法
4957
查看次数

SQL替换字符串中的多个不同字符

我需要替换字符串中的多个字符.结果不能包含任何"&"或任何逗号.

我目前有:

REPLACE(T2.[ShipToCode],'&','and')
Run Code Online (Sandbox Code Playgroud)

但是你如何将多个值放入?

非常感谢!

sql replace sql-server-2016

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

SQL Server 2016 JSON:选择字符串数组而不是对象数组

我是SQL Server中的JSON新手,无法弄清楚如何返回一个简单的字符串数组:

DECLARE @T TABLE ([value] NVARCHAR(MAX))

INSERT INTO @T ([value]) VALUES ('foo')
INSERT INTO @T ([value]) VALUES ('bar')
INSERT INTO @T ([value]) VALUES ('test')
INSERT INTO @T ([value]) VALUES ('ok')

SELECT [value]
FROM @T
FOR JSON PATH
Run Code Online (Sandbox Code Playgroud)

这将返回一个对象数组:

[{"value":"foo"},{"value":"bar"},{"value":"test"},{"value":"ok"}]
Run Code Online (Sandbox Code Playgroud)

我希望它返回:

["foo","bar","test","ok"]
Run Code Online (Sandbox Code Playgroud)

甚至可以这样做吗?

sql-server arrays json sql-server-2016

14
推荐指数
5
解决办法
4092
查看次数

实体框架不使用时态表

我正在使用数据库第一实体框架6.在将我的模式中的一些表更改为临时表后,我在尝试插入新数据时开始收到以下错误:

Cannot insert an explicit value into a GENERATED ALWAYS column in table '<MyDatabase>.dbo.<MyTableName>. Use INSERT with a column list to exclude the GENERATED ALWAYS column, or insert a DEFAULT into GENERATED ALWAYS column.

看起来EF正在尝试更新PERIOD由系统管理的列的值.

从EDMX文件中删除列似乎可以解决问题,但这不是一个可行的解决方案,因为每次从数据库重新生成模型时都会重新添加列.

c# sql-server temporal-database entity-framework-6 sql-server-2016

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

SQL over子句 - 将分区划分为编号的子分区

我遇到了一个挑战,我曾经多次遇到但从未能找到有效的解决方案.想象一下,我有一张大表,其中包含有关银行账户及其从借方到贷方的可能循环移动的数据:

AccountId DebitCredit AsOfDate
--------- ----------- ----------
aaa       d           2018-11-01
aaa       d           2018-11-02
aaa       c           2018-11-03
aaa       c           2018-11-04
aaa       c           2018-11-05
bbb       d           2018-11-02
ccc       c           2018-11-01
ccc       d           2018-11-02
ccc       d           2018-11-03
ccc       c           2018-11-04
ccc       d           2018-11-05
ccc       c           2018-11-06
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我想将子分区号分配给AccountId和DebitCredit的组合,其中每次DebitCredit移位时分区号都会递增.换句话说,在上面的示例中,我希望得到以下结果:

AccountId DebitCredit AsOfDate   PartNo
--------- ----------- ---------- ------
aaa       d           2018-11-01      1
aaa       d           2018-11-02      1
aaa       c           2018-11-03      2
aaa       c           2018-11-04      2
aaa       c           2018-11-05      2

bbb       d           2018-11-02      1

ccc       c           2018-11-01      1 …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server ranking-functions sql-server-2016

13
推荐指数
2
解决办法
517
查看次数

使用SSAS多维数据集的Power BI Slow

我们正在通过SSAS多维数据集直接查询实现Power BI。由于某些原因,SSAS Power BI的性能极慢,但是使用SSDT SSAS Application或Power View或Excel则要快得多。

我读到Power BI通过将MDX转换为DAX查询来转换SSAS多维模型。有什么方法可以加快针对SSAS的Power BI查询,或者直接使用MDX查询?

我们正在应用SSAS多维模型。

sql-server ssas sql-server-data-tools powerbi sql-server-2016

13
推荐指数
1
解决办法
722
查看次数

使用ASP.Net Core项目中的ADO.Net将JSON类型作为参数传递给SQL Server 2016存储过程

有人可以举例说明如何使用C#ASP.Net Core Web Api项目中的ADO.Net将JSON类型作为参数传递给SQL Server 2016存储过程吗?我想在C#ASP.Net Core Web Api中看到SQL Server 2016存储过程的示例和JSON类型的传递.

c# asp.net json sql-server-2016

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

使用FOR JSON PATH创建嵌套的JSON数组

我需要从一个查询创建一个JSON输出,该查询使用具有一对多关系的两个表之间的内部连接.
我希望将辅助表的值嵌套为主表的数组属性.

请考虑以下示例:

DECLARE @Persons AS TABLE
(
    person_id int primary key,
    person_name varchar(20)
)

DECLARE @Pets AS TABLE
(
    pet_owner int, -- in real tables, this would be a foreign key
    pet_id int  primary key,
    pet_name varchar(10)
)

INSERT INTO @Persons (person_id, person_name) VALUES
(2, 'Jack'),
(3, 'Jill')

INSERT INTO @Pets (pet_owner, pet_id, pet_name) VALUES
(2, 4, 'Bug'),
(2, 5, 'Feature'),
(3, 6, 'Fiend')
Run Code Online (Sandbox Code Playgroud)

并查询:

DECLARE @Result as varchar(max)
SET @Result =
(
SELECT  person_id as [person.id],
        person_name as …
Run Code Online (Sandbox Code Playgroud)

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

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

根据动态列查找匹配的记录

我有一份宠物清单:
宠物

我需要从Owner表中找到每个宠物的正确拥有者

拥有者

为了正确地将每个宠物与所有者匹配,我需要使用一个特殊的匹配表,如下所示:

匹配

因此,对于PetID = 2的宠物,我需要找到一个基于三个字段匹配的所有者:

    Pet.Zip = Owner.Zip 
    and Pet.OwnerName = Owner.Name 
    and Pet.Document = Owner.Document
Run Code Online (Sandbox Code Playgroud)

在我们的示例中,它将像这样工作:

 select top 1 OwnerID from owners
         where Zip = 23456 
         and Name = 'Alex' 
         and Document = 'a.csv'
Run Code Online (Sandbox Code Playgroud)

如果找不到OwnerID,则需要根据2个字段进行匹配(不使用优先级最高的字段)

在我们的例子中:

 select top 1 OwnerID from owners where
             Name = 'Alex' 
             and Document = 'a.csv'
Run Code Online (Sandbox Code Playgroud)

由于没有找到记录,我们需要匹配较少的字段.在我们的例子中:

select top 1 OwnerID from owners where Document = 'a.csv'
Run Code Online (Sandbox Code Playgroud)

现在,我们找到了OwnerID = 6的所有者.

现在我们需要更新ownerID = 6的宠物,然后我们可以处理下一个宠物.

我现在唯一能做到这一点的方法是循环或游标+动态SQL.

是否有可能在没有循环+动态sql的情况下实现这一点?也许STUFF + Pivot不知何故?

sql小提琴:http://sqlfiddle.com/#!18/10982/1/0

样本数据:

create table …
Run Code Online (Sandbox Code Playgroud)

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

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

增加条纹列

如何将以下结果以黄色突出显示? 在此输入图像描述

基本上我想要一个计算字段,当VeganOption = 1时递增1,当VeganOption = 0时递增为零

我尝试使用以下查询,但使用分区后继续增加零.我有点卡在这个上面.

SELECT [UniqueId]
      ,[Meal]
      ,[VDate]
      ,[VeganOption]
      , row_number() over (partition by [VeganOption] order by [UniqueId])
  FROM [Control]
  order by [UniqueId]
Run Code Online (Sandbox Code Playgroud)

表数据:

CREATE TABLE Control
    ([UniqueId] int, [Meal] varchar(10), [VDate] datetime, [VeganOption] int);

INSERT INTO Control ([UniqueId], [Meal], [VDate], [VeganOption])
VALUES
('1', 'Breakfast',' 2018-08-01 00:00:00', 1),
('2', 'Lunch',' 2018-08-01 00:00:00', 1),
('3', 'Dinner',' 2018-08-01 00:00:00', 1),
('4', 'Breakfast',' 2018-08-02 00:00:00', 1),
('5', 'Lunch',' 2018-08-02 00:00:00', 0),
('6', 'Dinner',' 2018-08-02 00:00:00', 0),
('7', 'Breakfast',' 2018-08-03 00:00:00', …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server gaps-and-islands sql-server-2016

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