标签: sql-server-2014

SQL Server 2014升级顾问失败

我已经在VM上安装了SQL Server 2014 Enterprise,并且正在尝试安装升级顾问.

方向表明我应该运行,SqlUA.msi但我收到以下错误:

安装程序缺少先决条件:

Microsoft SQL Server 2014 Transact-SQL-ScriptDom,升级顾问安装程序未安装.要继续,请从下面的超链接安装SQL Server 2014 Transact-SQL ScriptDom,然后再次运行Upgrade Advisor Setup操作:

http://go.microsoft.com/fwlink/?LinkID=296473.

这只是带我到下载页面.没有ScriptDom文件,但进一步搜索显示他们的意思是SQLDOM.所以我从上面的那个页面安装了SQLDOM.msi并得到以下错误:

Microsoft SQL Server 2012 Transact-SQL-ScriptDom

安装Microsoft SQL Server 2012 Transact-SQL-ScriptDom失败,因为计算机上已存在更高版本.要继续,请卸载更高版本,然后再次运行Microsoft SQL Server 2012 Transact-SQL ScriptDom安装程序.

嗯,这很令人困惑.首先我被告知我没有它,然后我被告知我正在尝试安装旧版本.我已经重新启动了VM和我的本地笔记本电脑但没有帮助.Microsoft支持告诉我他们不支持升级顾问.

sql-server upgrade sql-server-2014

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

用于SUM计算列的SQL语法,用于计算百分比分布

我正在使用SQL Server 2014,我有以下查询运行正常:

USE MyDatabase

SELECT [Room Nights],
       COUNT([Room Nights]) AS 'Count of RN'
FROM HOLDINGS2
GROUP BY [Room Nights]
Run Code Online (Sandbox Code Playgroud)

输出如下:

Room Nights      Count of RN
 1                 3
 4                 10
 5                 6
 7                 25
Run Code Online (Sandbox Code Playgroud)

现在我想显示另一个列,它给出了百分比的分布Count of RN.因此,我的输出需要像这样:

Room Nights      Count of RN    % Distribution
     1                 3           6.8
     4                 10          22.7
     5                 6           13.6
     7                 25          56.8
Run Code Online (Sandbox Code Playgroud)

我看了下面的讨论,试图找出一个解决方案: 计算值的百分比分布.

我想出了对现有代码的以下修改,但它不起作用!我在% Distribution列中只有零.

USE MyDatabase

SELECT [Room Nights],
       COUNT([Room Nights]) AS 'Count of RN',
       CAST(COUNT([Room Nights])/(SELECT COUNT([Room Nights])*100. …
Run Code Online (Sandbox Code Playgroud)

sql sql-server count sql-server-2014

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

SQL SERVER 2014代码片段丢失

我正在尝试在SQL Server中使用Snippets功能.

我正在测试按照此处的说明向SQL Server 2014添加新的代码段.

一切正常,但在我添加片段之后,它不会出现在IntelliSense中.更重要的是,我意识到并非所有内置代码片段都会出现.

我想知道是否有其他人有相同的经历,并知道如何解决这个问题?

这是一个内置片段列表 Function

内建

这就是我从IntelliSense中看到的(其中3个缺失)

遗失片段

sql sql-server code-snippets sql-server-2014

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

SQL Query在6个月的时间内查找该月的最后一天

我正在尝试编写一些SQL,它将在6个月的时间内给出该月的最后一天.

例如,如果我有一个15-07-2015的检查日期,我希望下一个检查日期是31-01-2016

检查日期可以是任何一个月的任何一天

任何建议将不胜感激.

t-sql sql-server sql-server-2014

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

SQL Server错误5120 - 无法附加.mdf文件

在我的SQL Server数据库上附加我的.mdf文件时,我收到以下错误消息:

消息5120,级别16,状态101,行1无法打开物理文件"C:\ Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA"操作系统错误5:"5(访问被拒绝.)".

错误信息 我没有关联数据库的.ldf文件.如何在没有.ldf文件的情况下附加我的.mdf文件?我正在使用SQL Server 2014.

sql-server sql-server-2014

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

使用OFFSET-FETCH,如何将行数默认为"所有行"?

设想一个存储过程,它接受@skip(偏移)和@take(要返回的最大行数.如果@takenull,那么我想返回"应用偏移后的所有行".

我可以通过计算表/视图中的行数来实现这@take一点null,但是我必须执行两个查询,这当然不是最佳的.我希望有一个类似的选项FETCH [NEXT] ALL ROWS.

DECLARE @skip BIGINT = 0;
DECLARE @take BIGINT = NULL;

IF (@take IS NULL) SET @take = (SELECT COUNT(*) FROM SomeTable);

SELECT *
FROM SomeTable
ORDER BY SortOrder
OFFSET @skip ROWS
FETCH NEXT @take ROWS ONLY
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server stored-procedures sql-server-2012 sql-server-2014

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

TSQL:如何确保一个ID有多行?

我需要确保每个IncidentID都有2个特定的ResponseCodes(201 AND 204).我如何识别IncidentID不具有201和204的那个,如下图所示?

数据集

在此输入图像描述

我想在数据集中识别的内容

在此输入图像描述

期望的结果集:

在此输入图像描述

SQL Fiddle对我不起作用,但测试代码如下:

CREATE TABLE DIS (
IncidentID NUMERIC,
ResponseCode NUMERIC,
ResponseCodeDescription varchar(30)
)

INSERT INTO DIS (IncidentID, ResponseCode, ResponseCodeDescription)
VALUES
      ( '999888', '201', 'OSS'), 
      ( '999888', '204', 'Long Term OSS'),
      ( '888777', '201', 'OSS'),
      ( '888777', '204', 'Long Term OSS'),
      ( '777666', '204', 'Long Term OSS'),
      ( '555444', '201', 'OSS'),
      ( '555444', '204', 'Long Term OSS')

SELECT 
    IncidentID
 ,  ResponseCode
 ,  ResponseCodeDescription
FROM DIS
Run Code Online (Sandbox Code Playgroud)

谢谢!

t-sql sql-server sql-server-2014

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

优化SQL Server排名索引

我们有一个广泛的表,我们目前正在尝试优化.该表有50列(统计数据),我们最终希望按降序排列.目前有超过500万行.

我们正在寻找在降低复杂性和提高读取速度方面优化此表的方法.写入速度对我们来说也很重要,但读取更为关键.这些统计数据的排名应该尽可能接近实时,最佳解决方案是在每个请求的基础上快速排名(新行一直在增加,我们希望尽快显示这些行的排名) .)

我们目前正在评估垂直表格布局是否会更好.)更容易使用.

因为插入的统计数据不一定定义得很好,所以如果它们没有硬编码到表中,则更容易(因此优先选择垂直表结构.)

以下是我们当前的表结构和查询:

CREATE TABLE Stats 
(
    Id BIGINT PRIMARY KEY NOT NULL,
    UserId INT,
    Name VARCHAR(32) NOT NULL,
    Value DECIMAL(10,4) DEFAULT ((0)) NOT NULL,
    UpdatedAt DATETIME
);

CREATE INDEX Leaderboard__index ON Stats (Name, Value DESC);

SELECT
    Id,
    Name,
    Value,
    RANK() OVER (PARTITION BY Name ORDER BY Value DESC) AS Rank
FROM 
    Stats
ORDER BY 
    Value DESC
Run Code Online (Sandbox Code Playgroud)

通常我们要么搜索任何给定统计数据的前N行(如排行榜),要么我们选择单个UserId并获得与该UserId相关的所有统计数据的排名.

数据相当大(正如我上面提到的,因为有很多行和很多列,垂直表结构可能在2.5亿行的范围内并且将继续增长.)

我们希望在需要的任何硬件上尽快获取这些数据,秒是我们的目标,因为我们目前在分钟范围内.

在对垂直表结构的测试中,我们插入了超过400,000行的数据,上面的查询需要不到3分钟(尽管它也只需要大约18秒来排名10,000行.)

我很乐意听到任何建议.谢谢你的时间!

database optimization performance ranking sql-server-2014

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

如果表没有更新,有没有办法显示错误消息?

我想更新表中的一行:

try
{
    string sql ="UPDATE TableNAme SET FirstName ='John' WHERE ID = 123";

    MySqlCommand command = new MySqlCommand(sql, connection);
    connection.Open();

    command.ExecuteNonQuery();
}
catch (Exception)
{
}
finally
{
    connection.Close();
}
Run Code Online (Sandbox Code Playgroud)

基于ID(密钥),如果ID在表中,它将完美地工作,但如果表中不存在该ID,则它不会显示错误消息.

有没有办法让我知道是否找不到身份证?

c# sql sql-server sql-server-2014

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

尽管数据看似合适,但在插入时"字符串或二进制数据将被截断"

我有一张这样的桌子:

CREATE TABLE Customers
(CustomerID int Identity (1,1) NOT NULL PRIMARY KEY,
customerName varchar (50),
Address varchar (255),
Phone int NOT NULL,
Email varchar,
Gender varchar,
Age int, 
);
Run Code Online (Sandbox Code Playgroud)

我尝试像这样插入这个表:

Insert into Customers (customerName, Address, Phones, Email, Gender, Age)
Values ('Anosa Seunge', 'Keskuskatu 200', 358-3-4180, 'ijiosd@ao.com', 'Male', 19),
        ('Jihad Christian', '305 - 14th Ave. Suite 3B', 358-1-3688, 'jihado@ao.com', 'Female', 29);
Run Code Online (Sandbox Code Playgroud)

并得到此错误:

Msg 8152, Level 16, State 14, Line 4
String or binary data would be truncated.
The statement has been …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2014

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