MS SQL Server 2017(开发人员版)已连接并在我的PC上运行。然而,当我想start在develop在MS Visual Studio的2017年的过程,这是给我下面的错误:
You cannot deploy the model because the localhost deployment server is not running in multidimensional mode.
Run Code Online (Sandbox Code Playgroud)
我尝试重新安装具有其他功能的MS SQL Server,但是找不到此multidimensional option。我搜索了一些文章,他们在旧版本的MS VS中解决了这些问题,但是,它们在MS VS 2017中没有帮助。请提供一些建议。
我试图从表中过滤出行,其中[Description]列包含另一个表中列表中的单词.
我已经走到这一步,然后意识到我根本不知道如何做到这一点:
SELECT
p.Description --- a large amount of text
FROM
Products p
WHERE
p.Description NOT LIKE
(SELECT List.Word FROM List) --- pseudo code
Run Code Online (Sandbox Code Playgroud)
所以我需要类似的东西,NOT IN但实际上却是NOT LIKE.
如果没有我必须手动提取列表中的所有单词并执行NOT LIKE '%sofa%' AND NOT LIKE '%cushion%' AND NOT LIKE '%chair%'等等,这是否可能?
我的数据看起来像:
客户表
CustomerId CustomerName CustomerEmail
------------------------------------------
1 Ben Ben@gmail.com
2 Robert Robert@gmail.com
3 Paul Paul@gmail.com
Run Code Online (Sandbox Code Playgroud)
客户联系人表
CustomerContactId CustomerId ContactName ContactEmail
----------------------------------------------------------
99 1 Lisa Lisa@msn.com
98 3 Jane Jane@msn.com
97 3 Wendy Wendy@msn.com
Run Code Online (Sandbox Code Playgroud)
这是我正在寻找的结果:
[
{
"CustomerId": 1,
"Names": [ "Ben","Lisa" ],
"Emails": [ "Ben@gmail.com","Lisa@msn.com" ]
},
{
"CustomerId": 2,
"Names": [ "Robert" ],
"Emails": [ "Robert@gmail.com" ]
},
{
"CustomerId": 3,
"Names": [ "Paul","Jane","Wendy" ],
"Emails": [ "Paul@gmail.com","Jane@msn.com","Wendy@msn.com" ]
}
]
Run Code Online (Sandbox Code Playgroud)
我尝试过的: 我很尴尬地说我还没有接近:
CustomerId CustomerName CustomerEmail
------------------------------------------ …Run Code Online (Sandbox Code Playgroud) 现在我发现了这个很棒的string_split()函数,然后我了解到输出行可能按任何顺序排列。不保证顺序与输入字符串中子字符串的顺序匹配。。这使得该功能对我来说毫无用处。
也许有解决方法吗?
编辑 -示例:
SELECT value FROM String_Split('b,a,c', ',')
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我希望按以下顺序得到结果:
value
------
b
a
c
Run Code Online (Sandbox Code Playgroud)
不过,根据微软的说法,这个订单并没有得到保证。那么我怎样才能准确地得到这个结果呢?
sql-server split sql-server-2016 azure-sql-database sql-server-2017
我在 Windows 上使用 SQL Server 2017 Microsoft SQL Server 2017 (RTM-GDR) (KB4583456) - 14.0.2037.2 (X64) 2020 年 11 月 2 日 19:19:59 版权所有 (C) 2017 Microsoft Corporation Developer Edition(64 位) 10 Pro 10.0(内部版本 19042:)。
我正在尝试对 STRING_AGG 函数的结果进行排序。
这很好用
SELECT STRING_AGG(Category,', ') AS Result
FROM LegacyReviews_Categories
Run Code Online (Sandbox Code Playgroud)
这给了我错误“Msg 102,Level 15,State 1,Line 1 '('附近的语法不正确。”
SELECT STRING_AGG(Category,', ') WITHIN GROUP ( ORDER BY Category ASC) AS Result
FROM LegacyReviews_Categories
Run Code Online (Sandbox Code Playgroud) 我有一个简单的表,该表由5条记录(以毫秒为单位)组成。我将数据库从2016升级到2017 SQL Server时遇到了问题。 此处附有两个图像,用于比较2016和2017 SQL Server结果的结果。我不明白为什么会在2017年出现这种不良行为。
这是2017 SQL Server中的错误吗??
在这两种情况下,表列数据类型在这两个日期时间数据类型中都是相同的。
这是创建表查询。
USE [Test]
GO
CREATE TABLE [dbo].[TestVisionBot3](
[FileId] [varchar](50) NULL,
[OrgId] [nchar](10) NOT NULL,
[ProjectId] [varchar](50) NULL,
[CreatedAt] [datetime] NULL,
[LockedUserid] [nvarchar](50) NULL
) ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)
这也是示例数据。
1a 1 2a 2018-04-29 10:30:30.010 test
3a 1 2a 2018-04-29 10:30:30.553 test
2a 1 2a 2018-04-29 10:30:30.557 test
4a 1 2a 2018-04-29 10:30:30.560 test
5a 1 2a 2018-04-29 10:30:30.563 test
Run Code Online (Sandbox Code Playgroud) 我正在将数据仓库从 SQL Server 2008R2 升级到 2017。升级后,每个脚本任务在尝试连接到日志数据库时都会抛出相同的错误。
该任务通过 OLEDB 连接管理器连接到数据库,然后将一些元数据写入日志记录表。建立初始连接失败。我希望这是一个相当简单的调用错误,但我是一个 SQL 人员,而不是 VB 人员,而且我没有看到这个问题。
我发现这个问题,Missing library to reference OLEDB connection types,但脚本没有调用 AcquireConnection() 方法,所以我认为它不适用。或者如果是的话,我不知道如何。
这是通过故障点的代码。
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
Imports System.Data.OleDb
Imports System.Collections
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
<Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute> _
<System.CLSCompliantAttribute(False)> _
Partial Public Class ScriptMain
Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
Enum ScriptResults
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
End Enum
Public Sub Main()
Dim fireAgain As Boolean
Dim pkgExecVar As Variables
Dim cm As ConnectionManager
Dim cmParam As IDTSConnectionManagerDatabaseParameters100
Dim conn …Run Code Online (Sandbox Code Playgroud) I got a request from our developers that,
What's best practice for this kind of access?
Grant dbcreator and deny access on existing ones or is there a better way?
我有一个大型插入查询,以错误结尾:
消息 8152,级别 16,状态 4,第 1 行
字符串或二进制数据将被截断
经过一番研究后,我尝试使用 TRACE FLAG 460,使用以下命令:
INSERT...
VALUES...
OPTION (QUERYTRACEON 460);
Run Code Online (Sandbox Code Playgroud)
这给出了与之前相同的错误,因此我尝试使用以下命令在服务器级别打开该标志:
DBCC TRACEON(460, -1);
Run Code Online (Sandbox Code Playgroud)
同样,输出没有变化。但是当我检查 flagstatus 时,它给出了所有正确的信息:
DBCC TRACESTATUS(460);
TraceFlag Status Global Session
460 1 1 0
Run Code Online (Sandbox Code Playgroud)
有人知道如何让 Trace Flag 460 工作吗?我的服务器信息如下:
Edition: Developer Edition (64-bit)
ProductVersion: 14.0.2037.2
ResourceLastUpdateDateTime: 2020-11-02 21:20:26.783
ResourceVersion: 14.00.2037
BuildClrVersion: v4.0.30319
Run Code Online (Sandbox Code Playgroud) sql-server-2017 ×10
sql-server ×8
sql ×5
t-sql ×2
for-json ×1
split ×1
ssis ×1
ssis-2017 ×1
ssms-2017 ×1
string-agg ×1
vb.net ×1