我已经从Microsoft docs下载并安装了 SSDT 。安装成功,我现在安装了适用于 VS 2017 的 SSDT - 版本 15.8.9(根据屏幕截图)
但是,我无法创建 SSIS 项目。SSDT 中没有这样做的选项。
当我尝试打开旧版本的 SSIS 包时,我得到以下“不支持”...
我还缺少什么?
我已经从Microsoft docs下载并安装了 SSDT 。安装成功,我现在安装了适用于 VS 2017 的 SSDT - 版本 15.8.9(根据屏幕截图)
但是,我无法创建 SSIS 项目。SSDT 中没有这样做的选项。
当我尝试打开旧版本的 SSIS 包时,我得到以下“不支持”...
我还缺少什么?
我在 SQL 表中有一个值,如下所示:
80400365_SwapOpenTrd_20180831.csv
我想替换数值,因此返回如下:
%_SwapOpenTrd_%.csv
我尝试了以下代码,但返回了多组 % 字符...
%%%%%%%%_SwapOpenTrd_%%%%%%%%%csv
我需要在此处更改什么以获得所需的结果?
http://sqlfiddle.com/#!18/9eecb/33261
DECLARE @Temp nvarchar(150) = '80400365_SwapOpenTrd_20180831.csv'
Declare @KeepValues as varchar(50)
Set @KeepValues = '%[^a-z_% ]%' -- keep underscore and space
While PatIndex(@KeepValues, @Temp) > 0
Set @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '%')
select @Temp
我有一个用 1692 行填充临时表的查询。我使用了一个表变量,但性能很糟糕。现在有所改善,但仍不理想。
但是,然后我需要将TaskName值拆分为单独的列。为此,我使用 APPLY(也许有更好的方法来做到这一点?)
执行计划返回超过 100,000的“实际行数”值。知道这是为什么吗?表中只有1692行!
查询计划如下。
https://www.brentozar.com/pastetheplan/?id=rJ6_JkKfQ
更新:尝试了来自@Biju jose 的 CASE 查询,但未提供所需的输出。
输出要求:
输出返回:
我有返回以下数据的 SQL Server 表数据。(绿色文本是关于“结果”列中每个单元格值的注释)
我想 PIVOT 该查询结果,以便它对那些相同的文件名使用最新的“ReceivedTime”。并且结果值应该分成单独的列 - 每次出现都有一个 COUNT。
到目前为止,这是我的代码。但是,这会返回多行而不是按文件名分组。我需要改变什么?
DECLARE @TmpTable AS TABLE
(
Filename varchar(80),
ReceivedTime datetime,
Outcome int NULL
);
INSERT INTO @TmpTable
VALUES
('FileABC','2018/06/29 03:34', 1),
('FileABC','2018/06/28 11:01', 3),
('FileABC','2018/06/28 09:30', 2),
('FileABC','2018/06/28 05:23', NULL),
('FileABC','2018/06/28 16:21', 3);
SELECT
Filename as 'LatestReceivedTime'
,[-1] AS 'NotProcessing'
,[0] AS 'InProgress'
,[2] AS 'Warning'
,[3] AS 'Failed'
,[1] AS 'Success'
FROM
(
SELECT x.Filename, x.ReceivedTime, COALESCE(x.Outcome, -1) AS 'Outcome'
FROM @TmpTable x
) x
PIVOT
(
COUNT(Outcome)
FOR Outcome IN ([-1], [0], [1], [2], [3], [4])
) AS PivotTable;
我有一个 TSQL 查询,它使用 PIVOT 创建名为Analyst
和Supervisor
从列中调用的ApprovalLevelName
列。
这是当前的输出:
在我的查询中,我有ApprovedTime
列和Status
列(在下面的查询中注释掉)。
我还想对这些进行 PIVOT,以便它们都出现在分析师和主管面前。即AnalystStatus
, SupervisorStatus
,AnalystApprovedTime
和SupervisorApprovedTime
.
下面是我希望它看起来的样子......
我怎样才能做到这一点?或者在SQL中有可能吗?我尝试使用APPLY
另一个PIVOT
但没有成功。
询问:
SELECT PivotTbl.*
FROM
(
SELECT
Code
,Period
,Task
,ApprovalLevelName
,ApprovedBy
,CommentText
,CommentPostedBy
--,ApprovedTime
--,Status
FROM [Tasks].[TaskRecordDetail] tr
) AS SourceTbl
PIVOT
(
MAX(ApprovedBy)
FOR ApprovalLevelName IN ([Analyst],[Supervisor])
) AS PivotTbl
以下是没有 a 的数据的外观PIVOT
:
我有一个包含 321 行的表(在下面创建)。
我希望下面的最后一个查询使用非聚集索引,然后使用键查找。但是,它使用聚集索引扫描。仅按预期返回一行。
为什么它进行扫描而不是使用非聚集索引?是因为表只包含 321 行吗?
CREATE TABLE dbo.TestIndexSample
(
Code char(4) NOT NULL,
Name nvarchar(200) NOT NULL,
ModifiedDate datetime NOT NULL CONSTRAINT [DF_TestIndexSample_ModifiedDate] DEFAULT GETDATE(),
CONSTRAINT [PK_TestIndexSample_Code] PRIMARY KEY CLUSTERED(Code)
);
GO
CREATE NONCLUSTERED INDEX IX_TestIndexSample_Name
ON dbo.TestIndexSample(Name);
GO
INSERT INTO dbo.TestIndexSample(Code, Name)
select CodeName, FullName
from dbo.SourceTest
GO
SELECT * FROM dbo.TestIndexSample
SELECT * FROM dbo.TestIndexSample where Code = 'X132EY'
SELECT * FROM dbo.TestIndexSample where Name = 'User A'
我有一个 SSIS 包,可以同时运行多个数据流任务。
每个数据流任务都放置在一个序列容器内。
在运行数据流任务之前,脚本任务用于检查需要运行哪些数据流任务。
每个数据流任务还有一个相关变量,由脚本任务设置为真或假。数据流任务使用变量值作为禁用表达式属性。
最初运行时,该过程按预期工作。那些具有变量 value = true 的任务会运行,而那些具有变量 value = false 的任务不会运行。
但是,下次我运行包时,所有数据流任务最初都被禁用(可能是因为相关变量设置为 false)。
但即使在运行时将某些变量设置为 true,任务仍然处于禁用状态。禁用表达式似乎没有获取最新的变量值。(在 Watch 窗口中,我可以看到变量值已正确更新)
我尝试在每个任务上设置 ' DelayValidation ' = true但没有改变。
为什么会发生这种情况?
我们正计划从 SQL Server 2008R2 迁移到 SQL Server 2014(或 2016)。
2008R2 版本后不支持第 3 方应用程序。
是不是可以把这个应用数据库迁移到2014,然后把那个数据库的Compatibility Level改成100?
将兼容性级别更改为 100 是否与在 SQL Server 2008R2 上具有相同的效果?或者有什么潜在的问题?
我有 2 个数据库 - 都在同一台服务器上。两个数据库的文件也位于相同的驱动器上。
当我在它的本地数据库上运行查询时,它会在 3 秒内运行。
但是,当我从第二个数据库运行它时,大约需要 20 分钟!这里唯一的区别是添加到 FROM 子句的数据库名称。
我可以寻找什么来找到为什么它表现如此糟糕?统计数据会起作用吗?
该查询是TVF上的SELECT查询。不幸的是,我无法查看 TVF,因为它是第 3 方查询并且我无权访问。