前几天我安装了Microsoft SQL Server数据工具 - 面向Visual Studio 2013的商业智能(SSDT:替换BIDS),并开始在VS2013中使用报告功能.
使用报表服务器项目向导模板成功创建了一个项目.
但是,稍后我需要SQL Server 2014,然后我下载并安装了开发人员版.(如果这可能导致问题)
现在VS2013中缺少报表服务器项目模板,我不能简单地将它们带回来.
现在我的VS2008具有我想要的功能:

但在VS2013 Professional中没有它们的痕迹:

有什么建议?
devenv.exe /InstallVSTemplates此Microsoft指南/ InstallVSTemplates(devenv.exe)检索未注册的VS2013模板.visual-studio-2008 visual-studio-2013 sql-server-2014 sql-server-data-tools
我在SQL Server 2014上有一个简单的实时案例.我有一个包含订单及其数量的表格:
declare @qty_to_distribute int = 50
create table orders (id int, priority int, qty int)
insert into orders (id, priority, qty) values
(1, 1, 10),
(2, 2, 30),
(3, 3, 20),
(4, 4, 5)
Run Code Online (Sandbox Code Playgroud)
我有一个值,例如50,我必须根据他们的优先顺序通过订单在订单之间分配
@qty_to_distribute减少订单的数量,查看样本数据 - 将实现订单1,2和4,并取消#3.
是否有一个简单,有效和非游标的解决方案,最好是基于窗口函数?
这看起来很有希望,但无法弄清楚在哪里放置条件:
select id,
sum(qty) OVER (ORDER BY priority asc ROWS UNBOUNDED PRECEDING) as qtysum
from orders
id qtysum
1 10
2 40
3 60 *
4 65 *
Run Code Online (Sandbox Code Playgroud)
我有一些数据,其中一些记录包含空行(=没有空格,没有NULL).例如:
LOCALE
en-es
en-uk
uk-uk
Run Code Online (Sandbox Code Playgroud)
当我想选择那个空行时,它很容易:
SELECT LOCALE
FROM ABC
WHERE LOCALE = ''
Run Code Online (Sandbox Code Playgroud)
但是当我尝试按如下方式替换它时,它不起作用,结果仍然是空白行:
SELECT REPLACE(LOCALE,'','WHY') AS 'LOCALE'
FROM ABC
WHERE LOCALE = ''
Run Code Online (Sandbox Code Playgroud)
但如果我用CASE声明绕过它,它的作用是:
SELECT CASE
WHEN LOCALE LIKE '' THEN 'WHY'
ELSE LOCALE
END AS 'LOCALE'
FROM ABC
WHERE LOCALE = ''
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?为什么REPLACE功能不起作用?
我在数据库中做了一些简单的步骤
步骤1:
CREATE TYPE [dbo].[TempType] AS TABLE([MM] [INT])
Run Code Online (Sandbox Code Playgroud)
第2步:
CREATE PROC [DBO].[TEMP1] (@MYTAB TEMPTYPE READONLY)
AS
BEGIN
SELECT *
FROM @MYTAB
END
Run Code Online (Sandbox Code Playgroud)
第3步:
CREATE TABLE #TEMP11 ([MM] [INT])
INSERT INTO #TEMP11
SELECT 1 UNION
SELECT 2 UNION
SELECT 3
SELECT * FROM #TEMP11
EXEC TEMP1 #TEMP11
Run Code Online (Sandbox Code Playgroud)
结果:
(4 row(s) affected)
(4 row(s) affected)
Run Code Online (Sandbox Code Playgroud)
消息206,级别16,状态2,过程temp1,行0
操作数类型冲突:nvarchar与TempType不兼容
我在另外两台服务器上做了它,它给出了相同的消息.我的代码中有什么错误.我也使用过SQL Server 2008 R2和SQL Server 2014.
让我们说你有下一个代码:
DECLARE @A INT = 1,
@B INT = NULL;
IF (@B != @A)
SELECT 1;
ELSE IF (@B = @A)
SELECT 2;
ELSE
SELECT 3;
Run Code Online (Sandbox Code Playgroud)
正如你可以看到变量@A等于'1'肯定而变量@B肯定没有.我正在Microsoft SQL Server Management Studio 2014中执行该部分代码,结果我得到'3'.这意味着@A不一样@B,但它也没有什么不同@B.这怎么可能呢?我在这里错过了什么?
我们正在使用microsoft sql server数据库运行的企业应用程序.
目前我们遇到了很多相同的性能问题,其中一个原因是我们发现内存的极端使用(缓冲池中加载的大数据).正如我提到的大数据,我们的应用程序运行着3000万至3000万的数据,很少使用很少的历史数据.我发现克服这个问题的方法之一是Sql Server表分区,学会了如何使用企业版应用相同但却无法找到资源来找出痛点.
任何人都可以指导我,如何找到需要表格分区的对象?如何根据应定义的分区查找参数/列?
t-sql sql-server partitioning database-partitioning sql-server-2014
这可能是一个非常基本的问题,但我只是在编写查询时遇到它.
为什么不能SQL Server转换的支票NULL来BIT?我在考虑这样的事情:
DECLARE @someVariable INT = NULL;
-- Do something
SELECT CONVERT(BIT, (@someVariable IS NULL))
Run Code Online (Sandbox Code Playgroud)
预期结果将是1或0.
我有一个名为TP_Roles的表.
该表结构是:
Id PK, int, not null
Role_Name varchar(200), null
IsActive bit, null
Run Code Online (Sandbox Code Playgroud)
如何将位值插入True而不是1?
非常感谢.
我打算在SQL Server 2014上创建一个非群集列存储索引.
但非聚集列存储索引是只读的,不能执行DML操作,我们需要在插入之前禁用并在插入后启用返回.
执行此任务的最佳方法是什么?
在for for for XML中有数据,我想将该XML存储在SQL Server表中.我创建了一个数据类型列,xml并尝试将我的XML数据存储在新创建的列中,但是我收到了一个错误INSERT:
VALUE方法中使用的数据类型"xml"无效.
这是Insert声明:
INSERT INTO UserDeatailtbl(RoleXml)
SELECT Y.ID.value('./RoleXml[1]', 'XML')
FROM @UserDetailsXML.nodes('UserDetails/UserDetailsRow') AS Y(ID)
Run Code Online (Sandbox Code Playgroud) sql-server-2014 ×10
sql-server ×8
t-sql ×6
sql ×2
case ×1
columnstore ×1
indexing ×1
partitioning ×1
replace ×1
xml ×1