假设我正在使用此示例中的图形数据库(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)
但是此语法不正确...我该如何查询?
我有一个 SSIS 作业,在 SQL Server 2008 中运行良好,但在 SQL Server 2017 中不再运行。我收到的错误消息是:
无法从任务“电子邮件”的 XML 创建任务,请键入“Microsoft.Script.Task”,因为错误 0x80070057”参数不正确
请告知此问题的任何解决方案。谢谢
安装 SQL Server 2017 后,我找不到 Execute Package Utility (dtexecui)。也找不到来自 Microsoft 的任何独立安装程序来安装它。有人会指导我安装它以运行我的 SSIS 包吗?
当我执行以下查询时:
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)
重要提示:我意识到只需将其声明@KG为DECIMALor即可获得所需的输出INT。我宁愿不这样做,因为我正在从VIEW我没有编辑权限的列表中进行选择,并且如果可能的话,我不想将每一FLOAT列单独转换为DECIMAL。
有没有办法做到这一点而不将每个单独的值投射到DECIMAL?
我在尝试获取 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) 尝试安装 Reporting Extension for CRM 2016,但 SSRS 实例为空。
VM 包含(SQL 和 CRM 在同一台计算机上)
您能否帮我解决以下错误(SSRS 实例名称为空)。我们可以在SQL Server 2017上安装报告扩展吗(应该没问题,因为我能够安装 CRM 服务器)?
我需要使用存储在此服务器中的数据调试本地 SQL Server 上的存储过程。
我的设备上有:
调试器已从 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 解决方案来安排输出以匹配预期的 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) 我有一个NVARCHAR(MAX)用于存储 json 数据的列。强制该数据遵守某些 json 模式的最佳方法是什么?
我知道我可以使用函数添加检查约束来检查我的要求,但是有没有更好/内置的方法来做到这一点?
细节:
我已经关注了这篇文章,但没有效果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)