标签: sql-server-2016

将 AnyLogic 连接到本地主机 SQL Server

我正在尝试通过 AnyLogic 7.3.6 连接到本地 SQL DB。我安装了 SQL Server 2016 Developer,并且数据库采用混合身份验证(Windows 和 SQL)。添加连接时出现以下错误:

网络错误 IOException:连接被拒绝:连接

连接被拒绝:连接

我的主人叫localhost. 我尝试将登录名和密码留空,希望进行 Windows 身份验证,并且尝试将 SQL 用户(测试、测试)添加到服务器,两者都得到相同的结果。我正在使用com.microsoft.sqlserver.jdbc.SQL.ServerDriverJDBC 驱动程序,但也尝试过net.sourceforge.jtds.jdbc.Driver(相同的结果)。

谁能解释一下如何在 AnyLogic 7 和 SQL Server 2016(开发人员)之间建立连接?

sql-server jdbc anylogic sql-server-2016

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

SQL Server 2016 实时查询统计信息显示为灰色

无论我运行哪种类型的查询,“包括实时查询统计信息”选项始终呈灰色。

知道如何启用此功能吗?

在此输入图像描述

sql-server database-administration sql-server-2016

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

将2个不同长度的向量合并成一个数据框

我不得不说,我半小时前才开始使用 R,从 SQL Server 运行 R 脚本,所以我就是他们所说的完全菜鸟。

我正在尝试将两个 R 向量合并到一个数据框中,但我的问题是向量的长度不同。

我不确定这是否可以做到,尽管我不一定明白为什么不可以?

我的 R 脚本是:

n <- c(2, 3, 5, 6);
s = c("aa", "bb", "cc");
df = data.frame(n, s);
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

data.frame(n, s) 中的错误:参数意味着不同的行数:4、3 调用:source -> withVisible -> eval -> eval -> data.frame

ScaleR 中的错​​误。检查输出以获取更多信息。eval(expr, envir, enclos) 中的错误:ScaleR 中的错​​误。检查输出以获取更多信息。调用:source -> withVisible -> eval -> eval -> .Call 执行停止

本质上我想象的就是生成一个类似于LEFT JOIN.

2    aa
3    bb
5    cc
6    NULL
Run Code Online (Sandbox Code Playgroud)

我问自己是否应该在 R 数据框中指定“替换 NULL”值,但我不确定这是否是一个解决方案。

merge r vector dataframe sql-server-2016

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

SQL Server 2016 - 尝试更改用户映射时出现错误 15150

我正在尝试将 db_backupuperator 添加到 UserMapping 但不能。它返回错误 15150 和消息:

“用户 'dbo' 的删除失败 (Microsoft.SqlServer.Smo) 其他信息:执行 Transact-SQL 语句或批处理时发生异常 (Microsoft.SqlServer.ConnectionInfo)”

我已经尝试应用这些建议的解决方案: https://blog.sqlauthority.com/2017/12/12/sql-server-fix-msg-15150-cannot-alter-user-dbo/

Use database_name
sp_changedbowner 'sa'
Run Code Online (Sandbox Code Playgroud)

我也尝试过删除数据库并创建一个新数据库,但随后我无法编辑用户映射的任何选项,甚至无法添加 db_datareader 或 db_datawriter

sql sql-server sql-server-2016

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

优化 SQL Server 2016 中的 JSON 查询处理

我在一个表中有一个 JSON 列,我正在解析它以创建一个视图。我在 JSON 字符串中有 120 列,它产生大约 1750 行数据。问题是,查询运行需要 17 秒,它是一个基本查询,如下所示(选择了 120 列):

SELECT JSON_VALUE(json, '$.member.firstname') as MemberFirstName
     , JSON_VALUE(json, '$.member.lastname') as MemberLastName
     , JSON_VALUE(json, '$.member.phone') as MemberPhone
  FROM foobar
Run Code Online (Sandbox Code Playgroud)

我知道这个表会增长,我希望在使用代码创建视图之前获得更好的性能。我正在阅读一些关于创建计算列或使用DBCC PAGE函数的文章,但我想知道是否有一种不那么密集的方法来获得我们正在寻找的东西。

sql-server json sql-server-2016

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

“SRVR”脚本变量未定义

我有一个 powershell 脚本,它可以获取一堆 sql 文件并在服务器上执行它们。一切都运行良好,直到我开始使用脚本来删除和重新创建作业。

sql脚本中不断抛出错误的部分是:

EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'DatabaseIntegrityCheck - SYSTEM_DATABASES', 
        @step_id=2, 
        @cmdexec_success_code=0, 
        @on_success_action=3, 
        @on_success_step_id=0, 
        @on_fail_action=2, 
        @on_fail_step_id=0, 
        @retry_attempts=0, 
        @retry_interval=0, 
        @os_run_priority=0, @subsystem=N'CmdExec', 
        @command=N'sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d DBAdmin -Q "EXECUTE [ola].[DatabaseIntegrityCheck] @Databases = ''SYSTEM_DATABASES, -tempdb'', @LogToTable = ''Y''" -b', 
        @flags=0
Run Code Online (Sandbox Code Playgroud)

错误是:

“SRVR”脚本变量未定义

这让我相信它不喜欢这个特定的部分:

@command=N'sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d DBAdmin -Q "EXECUTE [ola].[DatabaseIntegrityCheck] @Databases = ''SYSTEM_DATABASES, -tempdb'', @LogToTable = ''Y''" -b', 
Run Code Online (Sandbox Code Playgroud)

有趣的是,如果我将 sql 脚本复制并粘贴到 SSMS 中并执行它,它就可以正常工作。

为什么只有在从 Powershell 执行时才会出现此错误?


运行sql的powershell

try
        {
            Invoke-Sqlcmd  -ServerInstance $ServerName `
                -Database DBAdmin ` …
Run Code Online (Sandbox Code Playgroud)

powershell sql-agent-job sql-server-2016

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

如何从 MS SQL Json 字符串数组中选择字符串行?

我有一个包含 JSON 的文本字符串,如下所示:

'{ "d" : [ "test0", "test1", "test2" ] }'
Run Code Online (Sandbox Code Playgroud)

我想以行的形式检索数组的项目。

+------------+
|   data     | 
+------------+ 
|  test0     | 
|  test1     | 
|  test2     | 
+------------+  
Run Code Online (Sandbox Code Playgroud)

网络上的所有示例都展示了如何使用“对象数组”完成它,但我想用一个简单的“字符串数组” MS 示例来完成。

默认查询

+------------+
|   data     | 
+------------+ 
|  test0     | 
|  test1     | 
|  test2     | 
+------------+  
Run Code Online (Sandbox Code Playgroud)

只返回一个表,其中包含每个条目的键、值、类型

+-----+-------+------+
| key | value | type |
+-----+-------+------+
|   0 | test0 |    1 |
|   1 | test1 |    1 |
|   2 | test2 |    1 |
+-----+-------+------+ …
Run Code Online (Sandbox Code Playgroud)

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

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

SQL - 如何将 JSON_QUERY 输出存储到变量

我有这个查询,我试图将查询输出存储到@json变量中,但出现语法错误

DECLARE @json NVARCHAR(MAX)

SELECT @json = (JSON_QUERY((SELECT 
                                'Ball' AS title, 
                                'Blue' AS color, 
                                (SELECT 
                                     '1' AS Opt1, 
                                     '2' AS Opt2 
                                 FOR JSON PATH) AS Options
                            FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)) AS Product
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER;)

SELECT @json
Run Code Online (Sandbox Code Playgroud)

错误:

消息 156,级别 15,状态 1,第 11 行
关键字“AS”附近的语法不正确。

我怎样才能做到这一点?

sql t-sql json sql-server-2016

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

TSQL - 向上/向下舍入到最接近的秒

代码:

DECLARE @var DATETIMEOFFSET(7) ;

-- Rounding up
SET @var = '2020-03-20 12:00:29.9999999 -08:00' ;
SELECT  DATEADD ( ms, 500 - DATEPART ( ms, DATEADD ( MILLISECOND, 500, @var )), @var ) ;
-- Actual: 2020-03-20 12:00:30.0009999 -08:00
-- Expected: 2020-03-20 12:00:30.0000000 -08:00 -- Notice that precision is rounded up to '0000000'

-- Rounding down
SET @var = '2020-03-20 12:00:30.0000001 -08:00' ;
SELECT  DATEADD ( ms, 500 - DATEPART ( ms, DATEADD ( MILLISECOND, 500, @var )), @var ) ; …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server datetime date sql-server-2016

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

如何进行高级 PIVOT

我在 SQL Server 2016 中有下表

CREATE TABLE #Source (PatientID INT, DiagnosisCode VARCHAR(20), DX_Pt_RowNum INT)
INSERT INTO #Source
SELECT 1 AS PatientID, 'A' AS DiagnosisCode, 1 AS DX_Pt_RowNum UNION
SELECT 1 AS PatientID, 'B' AS DiagnosisCode, 2 AS DX_Pt_RowNum UNION
SELECT 1 AS PatientID, 'C' AS DiagnosisCode, 3 AS DX_Pt_RowNum UNION
SELECT 2 AS PatientID, 'K' AS DiagnosisCode, 1 AS DX_Pt_RowNum UNION
SELECT 2 AS PatientID, 'T' AS DiagnosisCode, 2 AS DX_Pt_RowNum UNION
SELECT 2 AS PatientID, 'E' AS DiagnosisCode, 1 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2012 sql-server-2016

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