在Feature Rules屏幕上的Windows 10计算机上安装SQL Server 2017 Developer Edition时,我无法通过以下规则:
我收到以下错误:
此计算机未安装Oracle Java SE运行时环境版本7更新51(64位)或更高版本.Oracle Java SE运行时环境是由第三方提供的软件.Microsoft不授予您此类第三方软件的权利.您有责任并且必须单独查找,阅读和接受适用的第三方许可条款.要继续,请从https://go.microsoft.com/fwlink/?LinkId=526030下载Oracle SE Java Runtime Environment .
我的机器上安装了足够高的Java版本(9.x).我运行了命令java -XshowSettings:properties -version,它在我的盒子上提供了与Java安装相关的以下细节:
Property settings:
awt.toolkit = sun.awt.windows.WToolkit
file.encoding = Cp1252
file.encoding.pkg = sun.io
file.separator = \
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
java.awt.printerjob = sun.awt.windows.WPrinterJob
java.class.path =
java.class.version = 53.0
java.home = C:\Program Files\Java\jre-9.0.1
java.io.tmpdir = C:\Users\RASIK~1.BIH\AppData\Local\Temp\
java.library.path = C:\ProgramData\Oracle\Java\javapath
C:\Windows\Sun\Java\bin
C:\Windows\system32
C:\Windows
C:\ProgramData\Oracle\Java\javapath
C:\Program Files (x86)\Intel\iCLS Client\
C:\Program Files\Intel\iCLS Client\
C:\Windows\system32
C:\Windows …Run Code Online (Sandbox Code Playgroud) 我按照以下方式启动并运行以下SQL Server 2017容器 -
https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
910d34ad3c3e microsoft/mssql-server-linux:2017-latest "/bin/sh -c /opt/m..." 11 minutes ago Up 11 minutes 0.0.0.0:1401->1433/tcp sql1
Run Code Online (Sandbox Code Playgroud)
我可以使用SQLCMD连接docker容器内部.
但是我不确定要在SQL Operations Studio中输入什么来连接它 -
我在安装SQL Server 2017(开发人员以及Express版本)时遇到问题.
我收到一个错误:
SQL Server 2017不支持您的操作系统
我的系统配置是:
我的操作系统有什么问题,如何安装它?
我设置了一个本地数据库(SQL Server 2017 Express)。一切正常,但是在 SSMS 中创建一个简单的存储过程时我也会出错。
例如,这
CREATE PROCEDURE [dbo].[EMS_Operations_SyncAssetTableByID2]
@Table_Name VARCHAR(255),
@Ids_For_Update VARCHAR(255),
@Is_Test BIT = 0
AS
BEGIN
DECLARE @DB_String varchar(55) ='Redesign'
END
Run Code Online (Sandbox Code Playgroud)
不会运行,我收到错误消息:
消息 156,级别 15,状态 1,第 1 行
关键字“PROCEDURE”附近的语法不正确。消息 156,级别 15,状态 1,第 1 行
关键字“PROCEDURE”附近的语法不正确。消息 8180,级别 16,状态 1,过程 sp_describe_parameter_encryption,第 1 行 [批处理起始行 0]
无法准备语句。消息 8180,级别 16,状态 1,过程 sp_describe_parameter_encryption,第 1 行 [批处理起始行 0]
无法准备语句。执行批处理时发生错误。错误信息是:内部错误。sp_describe_parameter_encryption 返回的结果集格式无效。结果集之一丢失。
我不确定是什么导致了这种情况,或者数据库中是否存在损坏,因为数据库中有加密,而且我不确定它在调用什么。
我还注意到批处理中的第一个 SQL 语句下面有一条蓝线,上面写着
@DB_String 将被转换为 System.Data.SqlClient.SqlParameter 具有以下属性:SqlDbType = varchar,Size 55, Precision=0
当我在远程服务器上运行相同的代码时,它可以毫无问题地完成。知道是什么原因造成的吗?
我正在尝试对表(例如 table1)进行插入,我想在附加 char 或 int 声明后插入一系列数字?
前任。对于范围 1-10
abc1,
abc2,
abc3,
abc4,
.
.
.
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我在负责删除旧执行日志的维护作业的 sql server 2017 代理作业中收到以下错误消息:
Date 5/23/2018 12:18:45 AM
Log Job History (SSIS Server Maintenance Job)
Step ID 1
Server KARABL3
Job Name SSIS Server Maintenance Job
Step Name SSIS Server Operation Records Maintenance
Duration 00:02:34
Sql Severity 16
Sql Message ID 16916
Operator Emailed
Operator Net sent
Operator Paged
Retries Attempted 3
Message
Executed as user: ##MS_SSISServerCleanupJobLogin##. A cursor with the name 'execution_cursor' does not exist. [SQLSTATE 34000] (Error 16916). NOTE: The step was retried the requested number of …Run Code Online (Sandbox Code Playgroud) 我的表格包含calcIncome计算列:
CREATE TABLE foo
(
id int,
name varchar(100),
[other columns],
calcIncome AS dbo.fn_calcIncome() PERSISTED NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
询问:
select *
from foo
where calcIncome > 100
Run Code Online (Sandbox Code Playgroud)
即使我设置calcIncome为PERSISTED,此查询仍然需要fn_calcIncome每一行。
PERSISTED那么,如果计算列的行为与非持久计算列相同,那么设置计算列的目的到底是什么?
为什么下面的脚本返回NULL而不是0?
DECLARE @number BIGINT = 0;
SELECT NULLIF(@number, '');
Run Code Online (Sandbox Code Playgroud)
根据 MSDN,它应该返回0:
NULLIF
如果两个指定的表达式相等,则返回空值。
对于SQL server,0和''被认为是一样的(=equal)?背后的逻辑是什么?
我有 SQL Server 2017 开发版。我正在使用服务器身份验证在那里创建用户:
添加后,我可以在服务器登录中看到用户:
但是当我尝试与该用户建立联系时,出现错误:
连接的 stus 和赠款已到位:
添加用户后我重新启动服务器仍然无法登录。这是开发者版的一些限制吗?
这是我的合并语句:
MERGE PE_TranslationPhrase T
USING PE_TranslationPhrase_Staging S
ON (T.CultureName = S.CultureName AND T.Phrase = S.Phrase)
WHEN MATCHED
THEN UPDATE SET T.TranslationId = T.TranslationId -- do nothing
WHEN NOT MATCHED BY TARGET
THEN INSERT (TranslationId, CultureName, Phrase)
VALUES (S.TranslationId, S.CultureName, S.Phrase);
Run Code Online (Sandbox Code Playgroud)
我似乎在该WHEN MATCHED部分遇到了麻烦。根据这个问题和答案,我将其更改WHEN MATCHED为:
THEN UPDATE SET T.TranslationId = T.TranslationId
Run Code Online (Sandbox Code Playgroud)
但我仍然收到此错误:
MERGE 语句尝试多次更新或删除同一行。当目标行与多个源行匹配时,就会发生这种情况。MERGE 语句不能多次更新/删除目标表的同一行。优化 ON 子句以确保目标行最多匹配一个源行,或使用 GROUP BY 子句对源行进行分组。
我明白原因了。根据该ON声明,我得到了重复的匹配项。但是……我不在乎。如果源表中的记录已存在于目标表中,那么我不想执行任何操作。根本不更新任何东西。跳过它。
那可能吗?
sql-server-2017 ×10
sql-server ×6
sql ×4
t-sql ×4
installation ×1
login ×1
merge ×1
nullif ×1
ssis ×1
ssms ×1