我想完全为商业智能功能实现 SQL Server 2012:SSIS、SSAS 和 SSRS 在它自己的服务器上。
我目前在另一台服务器上安装了 SQL Server 2008R2 数据库引擎。它由供应商维护,因此无法升级到 2012。
根据我在 SQL Server 20102 商业智能工具中的理解,您可以使用 2008R2 数据库作为数据库目标/源。理想情况下,我希望能够创建 2012 BI 项目:SSIS、SASS 和 SRSS,并将解决方案部署到 Sql Server 2012,但转换 2008R2 数据库中的数据。
这个设置可以吗?如果是这样,除了许可之外,还有什么缺点或潜在问题吗?
sql-server business-intelligence sql-server-2008-r2 sql-server-2012
如何配置 SQL Server 2012 以使用多个 NIC?
我有一台带有 4 个 NIC 的服务器。我想使用 2 个 NIC 来查询我的数据库,并使用 2 个 NIC 从中检索结果。
我希望它们在负载平衡模式下工作,并且在出现一个缺口时仍能继续工作。
有可能的?
我们公司有SQL Server 2008R2,并计划在2013年底或2014年初升级到2012。我想现在使用SSIS 2012,因为我们有软件。
我们有一个公司政策,我们不能在数据库服务器本身上运行 SSIS 包。我们从另一个应用程序服务器运行它们,而不是集成服务。
我的问题是,如果我要在我们的应用服务器上为 SSIS 安装所有 2012 组件,会不会有任何潜在问题?我还没有使用过 SSIS 2012,所以我不知道用于指向我们的 SQL 2008 实例的 OLE DB 组件 Id 是否会成为一个问题。
按照以下所列说明将兼容性级别设置为 SQL Server 2008 后,我尝试恢复 SQL Server 2012 数据库:http : //learnsqlwithbru.com/2012/01/11/setting-database-compatibility-level- for-sql-server-2012/
但是,恢复仍然不起作用,我得到“指定的强制转换无效”。有什么办法可以解决这个问题吗?
注意:我不想使用生成脚本选项。
我有一列是 varchar(max)。它主要包含有效的 XML。但有时它有无效的 xml(我仍然需要)。
我试图为这个表创建一个视图,当数据是有效的 XML 时,它允许值显示为 XML(使用 SSMS 附带的漂亮链接功能),但当它是无效的 XML 时仍然显示字符串。
像这样:
SELECT TRY_CAST([RunLog] AS xml) as [Log], -- works
RunLog, -- Also Works
-- This is the one I want, but it tries to parse all of them
-- (even the ones that fail the cast)
Case
When Try_Cast(RunLog as xml) is NULL
Then NettinRunLoggLog else CAST(RunLog AS xml)
end as CombinedLog
FROM LoggingTable
Run Code Online (Sandbox Code Playgroud)
我认为这是一个失败的原因,因为 SQL Server 不允许结果具有多个数据类型。但我想我会问专家以确定。
下面是一个存储过程,用于计算一个月内制作的小部件数量。如果没有制作小部件,则不存在任何记录。
执行计划显示INNER JOIN了 M 和 A 表中的一个,在语句中我正在执行一个LEFT OUTER JOIN.
我想计算一个时间范围内制作的小部件数量,将其加入月份表(1 月至 12 月),并将结果显示在 SSRS 报告中。加入是因为我无法获得不存在的COUNT数据。目前我得到:
MonthName Widget Count
February 2
March 3
April 4
May 6
June 5
July 4
August 6
September 2
October 4
November 1
December 2
Run Code Online (Sandbox Code Playgroud)
我希望列表中没有包含小部件的月份。
这是代码:
DECLARE @OName varchar(50)
DECLARE @Start_Date DATE
DECLARE @End_Date DATE
SET @OName = 'John'
SET @Start_Date = '01/01/2012'
SET @End_Date = '12/31/2012'
SELECT M.[MonthName]
,COUNT(A.[Widget_ID]) AS 'Widget Count'
FROM [Connector].dbo.[Months] AS M
LEFT …Run Code Online (Sandbox Code Playgroud) 给定两个 Microsoft SQL 服务器:
假设ServerA有一个名为“View1”的视图:
SELECT * FROM ServerB.database.dbo.Table1 WHERE Column1 IN (1,2,3)
和一个存储过程“sp_Foo”:
SELECT * FROM View1 WHERE Column1=1
当我执行时EXEC sp_Foo,哪个查询在哪个服务器上执行?都是在ServerB上执行的吗?都在 ServerA 上?还是在ServerB上执行的视图查询和在ServerA上执行的SP查询?
目前正在基于在特定表更新时触发的触发器进行数据库审计项目。触发器将更改写入表;写入的信息有:表名、更新列、时间戳、用户、旧值和新值。
触发器适用于单个更新,但当涉及多行更新时,它不起作用。
我的代码是这样的:
IF (UPDATE(Priority))
BEGIN
SET @UpdatedColumn = 'Priority'
INSERT INTO dbo.AuditTable
( [TableName] ,
[Source] ,
[RecordId] ,
[User] ,
[TimeStamp] ,
[UpdatedColumn] ,
[OldValue] ,
[NewValue]
)
SELECT
N'BookingItem' , -- TableName - nvarchar(max)
(SELECT CODE FROM TBL_LEG_SOURCE
INNER JOIN INSERTED INS ON LEG_SOURCE_ID = INS.SourceId) ,
INS.Id , -- RecordId - bigint
(SELECT USERNAME FROM INSERTED
INNER JOIN TBL_USER
ON ModifiedById = USER_ID) , -- User - nvarchar(max)
GETDATE() , -- TimeStamp - datetime
@UpdatedColumn , …Run Code Online (Sandbox Code Playgroud) 这是我第一次处理大型数据库,我想知道为什么下面的两个查询在执行计划方面是不同的。
我在特定表上设置了索引:
CREATE NONCLUSTERED INDEX [IX_UBHSD_xploc_trandt2] ON [dbo].[UBHSD]
(
[xploc] ASC, [trandt2] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF,
DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)
当我运行此查询时,它使用索引。
SELECT COUNT(*) as cnt
FROM [dbo].[UBHSD]
WHERE [xploc] != '' AND [trandt2] >= CAST('2012-01-01' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

但是当我在不使用聚合的情况下运行查询时:
SELECT *
FROM [dbo].[UBHSD]
WHERE [xploc] != '' AND [trandt2] >= CAST('2008-01-01' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

我期望两个查询都使用索引。但是第二个查询执行全表扫描。
为什么会这样?我错过了什么?
在 Windows Server R2 Standard 上的 SQL Server 2012 Enterprise 的 SSMS 中,每次我尝试设置数据收集集选项“非缓存 - 按相同计划收集和上传数据”的子选项“按需”时,我是得到错误:
没有计划,收集集无法启动。指定集合集的时间表

标题:Microsoft SQL Server 管理工作室
对象“磁盘使用情况”上的“更改”操作在执行期间失败。(Microsoft.SqlServer.Management.Sdk.Sfc)
执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)
捕获错误#:14684,级别:16,状态:1,在过程:
sp_syscollector_start_collection_set,行:203,与消息:捕获错误#:14693,级别:16,状态:1,在过程:
sp_syscollector_start_collection_set,行:108,与消息:没有计划就无法启动集合集。指定集合集的计划。(Microsoft SQL Server,错误:14684)
现在,除了启用和禁用已经存在的故障数据收集之外,我看不到如何以任何方式重新设置或重新配置数据收集。
任何想法如何使它工作?
首先,我想了解是我搞砸了它(尽管我在不同的机器上尝试过)还是其他人?
更新:
Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64)
企业版:Windows NT 6.1 上的基于核心的许可(64 位)(内部版本 7601:Service Pack 1)(管理程序)