标签: sql-server-2017

实体框架查询到SQL Server 2017图形数据库的语法

假设我正在使用此示例中的图形数据库(SQL Server 2017):

https://docs.microsoft.com/zh-cn/sql/relational-databases/graphs/sql-graph-sample

我有以下SQL查询:

-- Find Restaurants that John likes
SELECT Restaurant.name
FROM Person, likes, Restaurant
WHERE MATCH (Person-(likes)->Restaurant)
AND Person.name = 'John';
Run Code Online (Sandbox Code Playgroud)

我使用EF 6.1.3在C#中创建了一个模型,它会自动生成数据库中的所有类和所有内容(数据库中的EF Designer)。这一切都很好。我什至可以使用以下简单方法查询所有人:

public ICollection<People> ListPeople() => Entities.Peoples.ToList();
Run Code Online (Sandbox Code Playgroud)

现在,如果我们回到原始查询,我想在哪里找到John喜欢的餐厅...我将如何在Entity Framework中做到这一点?我需要使用LINQ查询还是可以仅调用实体?(大概我不能,因为表之间似乎没有任何物理关系,只能在边缘找到它们)

我在想类似的东西

 public ICollection<Restaurant> ListRestaurantsLikedByPerson(string personName)
        {
            var result = from restaurant in Entities.Restaurants, person in Entities.Peoples, likes in Entities.likess
                where match (person - likes -> restaurant)
                and person.name = personName;

            return result;
        }
Run Code Online (Sandbox Code Playgroud)

但是此语法不正确...我该如何查询?

c# entity-framework graph-databases sql-server-2017

6
推荐指数
2
解决办法
2337
查看次数

由于错误 0x80070057“参数不正确。” SSIS作业运行失败

我有一个 SSIS 作业,在 SQL Server 2008 中运行良好,但在 SQL Server 2017 中不再运行。我收到的错误消息是:

无法从任务“电子邮件”的 XML 创建任务,请键入“Microsoft.Script.Task”,因为错误 0x80070057”参数不正确

请告知此问题的任何解决方案。谢谢

sql-server ssis sql-server-2008 sql-server-2017

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

安装 SQL Server 2017 后未安装执行包实用程序 (dtexecui)

安装 SQL Server 2017 后,我找不到 Execute Package Utility (dtexecui)。也找不到来自 Microsoft 的任何独立安装程序来安装它。有人会指导我安装它以运行我的 SSIS 包吗?

sql dtexec sql-server-2017

6
推荐指数
1
解决办法
5051
查看次数

SELECT FOR JSON 输出浮点指数

当我执行以下查询时:

DECLARE @KG FLOAT = 5.0;

WITH Weight(KG, LB) AS (SELECT @KG, @KG * 2.2046226218)
SELECT * FROM Weight;
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

| KG | LB           |
|----|--------------|
| 5  | 11.023113109 |
Run Code Online (Sandbox Code Playgroud)

现在,当我简单地附加FOR JSON AUTO到输出 JSON 时,

声明 @KG 浮动 = 5.0;
    
带重量(KG,LB)AS(选择@KG,@KG * 2.2046226218)
从重量中选择 * FOR JSON AUTO

我得到以下输出:

[{"KG":5.000000000000000e+000,"LB":1.102311310900000e+001}]
Run Code Online (Sandbox Code Playgroud)

我知道上面是有效的 JSON,但我想要的输出是:

[{"KG":5,"LB":11.023113109}]
Run Code Online (Sandbox Code Playgroud)

重要提示:我意识到只需将其声明@KGDECIMALor即可获得所需的输出INT。我宁愿不这样做,因为我正在从VIEW我没有编辑权限的列表中进行选择,并且如果可能的话,我不想将每一FLOAT列单独转换为DECIMAL

有没有办法做到这一点而不将每个单独的值投射到DECIMAL

sql t-sql sql-server json sql-server-2017

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

PYODBC 截断 SQL Server FOR JSON 查询的响应

我在尝试获取 SQL Server JSON 结果集以与 PYODBC 配合使用时遇到问题。我的 Python/Flask 技能不是最好的,所以我不完全确定这是否是我在做的蠢事,或者驱动程序不能使用 JSON。

失败的进程正在调用一个存储过程,该过程SELECT使用FOR JSON PATH. 程序本身很好,结果集在 SSMS 中看起来是正确的。

但是,在以下代码块中,为其赋值的行search_results引发错误。

with DB() as cnxn:
    results = cnxn.query('dbo.getLocationByTrain', params)
    search_results = json.loads(results.fetchone()[0]);
Run Code Online (Sandbox Code Playgroud)

错误是:

Traceback (most recent call last):
  File "C:\Users\Mark\source\repos\CommuteTo\CommuteTo\env\lib\site-packages\flask\app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Users\Mark\source\repos\CommuteTo\CommuteTo\env\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:\Users\Mark\source\repos\CommuteTo\CommuteTo\env\lib\site-packages\flask\app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\Mark\source\repos\CommuteTo\CommuteTo\env\lib\site-packages\flask\_compat.py", line 33, in reraise
    raise value
  File "C:\Users\Mark\source\repos\CommuteTo\CommuteTo\env\lib\site-packages\flask\app.py", line 1612, in …
Run Code Online (Sandbox Code Playgroud)

sql-server json pyodbc flask sql-server-2017

5
推荐指数
2
解决办法
1333
查看次数

CRM 报告扩展 - SSRS 实例为空

尝试安装 Reporting Extension for CRM 2016,但 SSRS 实例为空。

VM 包含(SQL 和 CRM 在同一台计算机上)

您能否帮我解决以下错误(SSRS 实例名称为空)。我们可以在SQL Server 2017上安装报告扩展吗(应该没问题,因为我能够安装 CRM 服务器)?

在此输入图像描述

reporting-services dynamics-crm-2016 sql-server-2017

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

如何在 Microsoft SQL Server 2017 上调试存储过程?

我需要使用存储在此服务器中的数据调试本地 SQL Server 上的存储过程。

我的设备上有:

  • Microsoft SQL Server 2017 标准版
  • Microsoft SQL Server 管理工作室 2014
  • Microsoft SQL Server Management Studio 18.0 预览版 5
  • Visual Studio 2017 专业版

调试器已从 SSMS 17.9 及更新版本中删除。

尝试 1。调试使用 SSMS 2014。我收到以下错误消息:

在此处输入图片说明

无法启动程序“MSSQL:://localhost/MyDB/sys/=0”。

没有参数的存储过程也有同样的错误。

尝试2。使用 Visual Studio 进行调试。

我可以执行存储过程,甚至可以通过 VS 在 SQL 服务器端更改它们。

但是当我尝试调试时出现类似的错误:

无法启动调试器。生成了一个异常:'数据为空。不能对 Null 值调用此方法或属性。

无法启动程序“MSSQL:://localhost/?/sys/=0”。不支持操作。未知错误:0x80004005。

那么我应该如何调试 Microsoft SQL Server 2017 中的存储过程?

还是我做错了什么?

sql-server debugging ssms stored-procedures sql-server-2017

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

SQL 到 JSON - 将结果分组到 JSON 数组中

我正在尝试提出一个 SQL 解决方案来安排输出以匹配预期的 JSON 格式。

我有一些简单的 SQL 来强调问题的来源;

SELECT TOP 1 'Surname' AS 'name.family'
,'Forename, Middle Name' AS 'name.given'
,'Title' AS 'name.prefix'
,getDATE() AS 'birthdate'
,'F' AS 'gender'
,'Yes' AS 'active'
,'work' AS 'telecom.use'
,'phone' AS 'telecom.system'
,'12344556' AS 'telecom.value'
FROM tblCustomer
FOR json path
Run Code Online (Sandbox Code Playgroud)

这将返回 JSON 为;

[
{
    "name": {
        "family": "Surname",
        "given": "Forename, Middle Name",
        "prefix": "Title"
    },
    "birthdate": "2019-02-13T12:06:45.490",
    "gender": "F",
    "active": "Yes",
    "telecom": {
        "use": "work",
        "system": "phone",
        "value": "12344556"
    }
}
]
Run Code Online (Sandbox Code Playgroud)

我需要的是将额外的对象添加到“telecome”数组中,这样它就会显示为;

[ …
Run Code Online (Sandbox Code Playgroud)

sql arrays json sql-server-2017

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

如何在列上强制执行 JSON 架构

我有一个NVARCHAR(MAX)用于存储 json 数据的列。强制该数据遵守某些 json 模式的最佳方法是什么?

我知道我可以使用函数添加检查约束来检查我的要求,但是有没有更好/内置的方法来做到这一点?

sql-server json sql-server-2017

5
推荐指数
0
解决办法
1587
查看次数

SQL Server:安装失败,错误代码为 0x851A001A – 等待数据库引擎恢复句柄失败

细节:

  • SQL Server 2017(开发人员版或 Express 版)
  • Windows 2011 操作系统

我已经关注了这篇文章,但没有效果https://blog.sqlauthority.com/2017/01/27/sql-server-sql-installation-fails-error-code-0x851a001a-wait-database-engine-recovery-handle -失败的/

  Feature:                       Database Engine Services
  Status:                        Failed
  Reason for failure:            An error occurred during the setup process of the feature.
  Next Step:                     Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
  Component name:                SQL Server Database Engine Services Instance Features
  Component error code:          0x851A001A
  Error description:             Wait on the Database Engine recovery handle failed. Check the SQL Server error log …
Run Code Online (Sandbox Code Playgroud)

sql-server-2017

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