标签: sql-server-2016

SQL-Json 查询

我有类似于下面的表,其中有一对多映射

DECLARE @T1 TABLE(RootId int, [Name] varchar(50))
DECLARE @T2 TABLE(Id int,RootId int, Category varchar(50))

INSERT INTO @T1
VALUES(1,'Some Name 12121'),(2,'Some Name 343434')

INSERT INTO @T2
VALUES(100,1,'Category 3333'),
        (101,1,'Category 2222'),
        (102,1,'Category 4444'),
        (103,1,'Category 5555'),
        (104,2,'Category 1111'),
        (105,2,'Category 77777')
Run Code Online (Sandbox Code Playgroud)

我期望编写查询,以便它生成如下格式的 json,其中包含项目和子数组

    [
  {
    "item": {
      "rootId": 1,
      "name": "Some Name 12121",
      "sub": [
        {
          "id": 100,
          "category": "Category 3333"
        },
        {
          "id": 101,
          "category": "Category 2222"
        }
      ]
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

我已经尝试过以下但无法达到预期的输出

SELECT T1.RootId,T1.Name,T2.Id AS [Sub.Id],T2.Category as [Sub.Category]
FROM @T1 T1
    INNER …
Run Code Online (Sandbox Code Playgroud)

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

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

R绘图使用sp_execute_external_script渲染SQL Server 2016

有没有人想出如何sp_execute_external_script在SQL Management Studio结果窗口或消息窗口或弹出窗口中使用返回绘图的位置渲染绘图?我能够将一个绘图输出到文件系统,但这并不理想.

下面是我如何得到输出到文件系统的图.

EXECUTE  sp_execute_external_script
                @language = N'R'
              , @script = N' trellis.device(device="png", filename="c:/output/HistPlot.png");
              myHist=histogram(~col1, data=InputDataSet);
              print(myHist)'
              , @input_data_1 = N'SELECT  col1, col2 from ds.dbo.[sample]'
Run Code Online (Sandbox Code Playgroud)

r sql-server-2016

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

CTP安装错误.为SQL Server 2016 CTP3.2安装Microsoft System CLR类型

我收到一个错误:

若要继续,请为SQL Server 2016 CTP3.2安装Microsoft System CLR类型

在安装SQL 2016 CTP 3.2期间.从哪里可以下载SQL Server 2016 CTP3.2的CLR类型?

sql sql-server sql-server-2016

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

不支持SSRS移动报告

我正在尝试测试新的SSRS 2016功能,这是我到目前为止所拥有的:

  • 注册参加Azure试用版
  • 安装了SQL Server 2016 VM
  • 创建了一个DB
  • 配置报告服务以运行经典报告
  • 下载了Mobile Report Publisher

我一直在尝试使用预定的数据,但我想提取一些我熟悉的数据.当我尝试连接到服务器(localhost/reports)时,由于"服务器不支持移动报告",我收到服务器错误.

有什么我需要配置来启用它吗?

提前致谢

sql-server mobile azure reporting-services sql-server-2016

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

从Sql Server 2008升级到Sql Server 2016后,一个快速的存储过程现在很慢

我们有一个存储过程,它返回属于地理空间区域("地理位置")的所有记录.它使用CTE(带),一些联合,一些内连接并将数据作为XML返回; 没有争议或前沿,但也不是微不足道的.

这个存储过程在SQL Server 2008上已经很好地服务了很多年.它在相对较慢的服务器上运行1秒钟.我们刚刚在具有大量内存和超快速SDD的超高速服务器上迁移到SQL Server 2016.

整个数据库和相关应用程序在这台新服务器上运行得非常快,我们对它非常满意.但是,这一个存储过程在16秒而不是1秒内运行 - 完全相同的参数和完全相同的数据集.

我们更新了此数据库的索引和统计信息.我们还将数据库的兼容级别从100更改为130.

有意思的是,我重写了存储过程以使用临时表和"插入"而不是使用CTE.这使得时间从16秒降低到4秒.

执行计划没有提供任何关于瓶颈可能存在的明显见解.

我们有点卡住了想法.接下来我们该怎么办?提前致谢.

-

我现在花在这个问题上的时间比我承认的要多.我已将存储过程归结为以下查询以演示此问题.

drop table #T 

declare @viewport sys.geography=convert(sys.geography,0xE610000001041700000000CE08C22D7740C002370B7670F4624000CE08C22D7740C002378B5976F4624000CE08C22D7740C003370B3D7CF4624000CE08C22D7740C003378B2082F4624000CE08C22D7740C003370B0488F4624000CE08C22D7740C004378BE78DF4624000CE08C22D7740C004370BCB93F4624000CE08C22D7740C004378BAE99F4624000CE08C22D7740C005370B929FF4624000CE08C22D7740C005378B75A5F4624000CE08C22D7740C005370B59ABF462406F22B7698E7640C005370B59ABF462406F22B7698E7640C005378B75A5F462406F22B7698E7640C005370B929FF462406F22B7698E7640C004378BAE99F462406F22B7698E7640C004370BCB93F462406F22B7698E7640C004378BE78DF462406F22B7698E7640C003370B0488F462406F22B7698E7640C003378B2082F462406F22B7698E7640C003370B3D7CF462406F22B7698E7640C002378B5976F462406F22B7698E7640C002370B7670F4624000CE08C22D7740C002370B7670F4624001000000020000000001000000FFFFFFFF0000000003)

declare @outputControlParameter nvarchar(max) = 'a value passed in through a parameter to the stored that controls the nature of data to return. This is not the solution you are looking for'

create table #T
    (value int)

insert into #T 
select 136561 union 
select 16482 -- These values are sourced from parameters into the stored proc

select …
Run Code Online (Sandbox Code Playgroud)

performance stored-procedures common-table-expression sql-server-2008 sql-server-2016

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

连接到SQL Server Developer版

我最近为我的项目安装了Microsoft SQL Server Express,我能够使用SQL Server Management Studio连接到该实例,一切正常.然后我意识到我需要开发人员版本以我想要的方式导入数据,所以我试图删除Express版本,我从微软的网站上安装了Developer Edition.

我尝试首先连接到SSMS中的开发人员实例[computer name]\MSSQLSERVER([computer name]\SQLEXPRESS之前已经工作过)但是没有用.然后我尝试了许多其他的事情,包括更新和重新安装SSMS和开发人员实例,以及使用安装中心修复实例.

当我查看SSMS上的本地服务器组时,我看到默认的一个只是我的计算机名称,我看到了[computer name]\sqlexpress,但是我看不到具有开发者版本的实例名称的那个(应该是[computer name]\mssqlserver,对吧?).连接快递版本也不再起作用,我认为是因为我尝试卸载它.连接到默认工作,但它不是开发人员(我知道从尝试导入数据).

但是,当我查看服务器配置管理器时,它会将"SQL Server(MSSQLSERVER)"显示为正在运行的服务,但SSMS拒绝识别它.

我是初学者,所以很有可能我错过了一些非常明显的东西.我也不确定窗口上的"立即连接"按钮说"安装已成功完成",它将带您进入命令行窗口,以及是否与此有关.当我安装快递时,我真的不记得用它做任何事情.

任何帮助表示赞赏.谢谢!

sql sql-server-2016

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

SQL Server 2016中的SQL Server配置管理器在哪里

SQL Server 2016中的SQL Server配置管理器在哪里?

它不在SQL Server 2016的菜单组下.

(我安装了Developer Edition)

sql-server configurationmanager sql-server-2016

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

查找数据中的缺失日期

我收到来自多个天线的每日txt数据文件.文件的命名约定是:

独特的天线ID +年+月+日+随机3位数

我解析了文件名并创建了一个像这样的表:

AntennaID    fileyear    filemonth    fileday    filenumber     filename
0000         2016        09           22         459            000020160922459.txt
0000         2016        09           21         981            000020160921981.txt
0000         2016        09           20         762            000020160920762.txt
0001         2016        09           22         635            000120160922635.txt
.
.
.
etc. (200k rows)
Run Code Online (Sandbox Code Playgroud)

有时天线发送的文件多于1个或根本没有文件.如果发送的文件超过1,则唯一的3位数文件编号会区分文件,但我正在尝试查找未发送文件的日期.

我已经尝试了几个groupby语句来比较给定月份的数据文件数量,看看它是否与那个月的天数相匹配 - 但问题是有时候天线每天发送超过1个文件,这可能是人为的如果我们只是比较计数,则弥补"遗失"文件.

我正在寻找一种更健壮的方法来查找丢失文件的日期或日期范围.我已经查看了Partition和Over函数,感觉可能存在潜力,但我不确定如何使用它们,因为我对SQL很新.

我正在使用Microsoft SQL Server 2016

sql sql-server missing-data gaps-and-islands sql-server-2016

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

SQL Server Management Studio 2016缓慢到达启动画面

我有一台带有固态硬盘的快速Dell Precision 7720笔记本电脑,除了Management Studio之外,我的所有应用程序加载速度非常快.我以前的笔记本电脑也有这个问题.

我已经阅读了很多关于此的讨论 - 特别是这个 - 但是这些解决方案都不适用于我.到达此屏幕需要13秒:

在此输入图像描述

我正在运行Windows 10,以及以下SQL Server版本:

在此输入图像描述

有没有人知道出了什么问题?我相信这最近才开始发生.

ssms sql-server-2016

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

JSON - 如何在sql中将数组追加到数组中

我在表中有一个json字段,其中包含如下数组: -

[
  {
    "ID": 11111,
    "Name": "apple",
  },
  {
    "ID": 22222,
    "Name": "orange",
  },
  {
    "ID": 333333,
    "Name": "banana",
  } 
] 
Run Code Online (Sandbox Code Playgroud)

我想将以下json数组追加/连接到这个: -

[
  {
    "ID": 44444,
    "Name": "grape",
  },
  {
    "ID": 55555,
    "Name": "kiwi",
  },
  {
    "ID": 66666,
    "Name": "fig",
  } 
] 
Run Code Online (Sandbox Code Playgroud)

所以我最终在表格字段中得到了这个: -

[
  {
    "ID": 11111,
    "Name": "apple",
  },
  {
    "ID": 22222,
    "Name": "orange",
  },
  {
    "ID": 333333,
    "Name": "banana",
  },
  {
    "ID": 44444,
    "Name": "grape",
  },
  {
    "ID": 55555,
    "Name": "kiwi",
  },
  {
    "ID": 66666, …
Run Code Online (Sandbox Code Playgroud)

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

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