在我的应用程序中,动态创建脚本任务.
在SQL Server 2008的SSIS实现中,以下方法工作正常.
private void SetSourceCode(ScriptTask scriptTask, string code, string codeName)
{
string fileName = "ScriptMain.vb";
string language = "VisualBasic";
string proj = ".vbproj";
scriptTask.ScriptLanguage = VSTAScriptLanguages.GetDisplayName(language);
scriptTask.ScriptingEngine.InitNewScript(language,
scriptTask.ScriptProjectName, proj);
scriptTask.ScriptingEngine.ShowDesigner(false);
scriptTask.ScriptingEngine.AddCodeFile(fileName, code);
if (!scriptTask.ScriptingEngine.Build())
throw new Exception("Failed to build vb script code: " + codeName);
scriptTask.ScriptingEngine.SaveScriptToStorage();
if (!scriptTask.ScriptingEngine.CloseIDE(false))
{
throw new Exception("Unable to close Scripting engine.");
}
}
Run Code Online (Sandbox Code Playgroud)
如何将此代码迁移到SQL Server 2012,因为从SQL Server 2012 dll-s(程序集)中删除了以下方法:
通常,如何在SQL Server 2012中动态设置脚本任务的源代码?
使用SQLServer 2012 Enterprise时,在"控制流"选项卡中右键单击时,我在SSIS中看不到"包配置向导".我可以看到所有其他项目(日志,数字签名......).
以下是有关我的安装的信息:
Microsoft Visual Studio 2010
Version 10.0.40219.1 SP1Rel
Microsoft .NET Framework
Version 4.0.30319 SP1Rel
Professional
SQL Server Analysis Services
Concepteur Microsoft SQL Server Analysis Services
Version 11.0.2100.60
SQL Server Integration Services
Concepteur Microsoft SQL Server Integration Services
Version 11.0.2100.60
SQL Server Reporting Services
Concepteurs Microsoft SQL Server Reporting Services
Version 11.0.2100.60
Run Code Online (Sandbox Code Playgroud) SQLGetDiagRec返回本机错误代码.是否有任何概述SQL Server 2012的错误代码?我在MSDN上找不到任何东西.
有没有人碰巧有一个通用的SQL语句,它会列出数据库中的所有表和索引,以及它们当前的压缩设置,对于每个分区?
谢谢.
编辑:这是我尝试查询表时所得到的,但我不确定连接是否正确(我得到重复,这似乎是由索引的存在引起的)
SELECT [t].[name], [p].[partition_number], [p].[data_compression_desc]
FROM [sys].[partitions] AS [p]
INNER JOIN sys.tables AS [t] ON [t].[object_id] = [p].[object_id]
Run Code Online (Sandbox Code Playgroud) 有人可以指导我如何克服以下错误.我正在尝试在我的win7 32位系统上安装SQL Server 2012 Express.我在这个系统中安装了SQL Server 2008 R2 32位,这是由前一个用户删除的(这是我正在使用的官方系统(笔记本电脑)).
以下是安装失败后生成的日志文件:
Overall summary:
Final result: Failed: see details below
Exit code (Decimal): -2061893607
Start time: 2013-07-12 15:43:20
End time: 2013-07-12 15:55:46
Requested action: Install
Setup completed with required actions for features.
Troubleshooting information for those features:
Next step for SQLEngine: Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
Machine Properties:
Machine name: FSLTECYOUBRAJ
Machine processor count: 4
OS version: Windows 7 …Run Code Online (Sandbox Code Playgroud) 我有以下查询:
select CONVERT(varchar(12), DATEADD(MILLISECOND, DateDiff(MILLISECOND, '2014-08-04 10:37:28.713','2014-11-04 08:21:17.723'), 0), 114)
Run Code Online (Sandbox Code Playgroud)
当我执行此操作时,我收到错误:"datediff函数导致溢出.分隔两个日期/时间实例的日期部分的数量太大.尝试使用具有不太精确的日期部分的datediff."
当我将查询更改为以下时,它工作正常:
select CONVERT(varchar(12), DATEADD(SECOND, DateDiff(SECOND, '2014-08-04 10:37:28.713','2014-11-04 08:21:17.723'), 0), 114)
Run Code Online (Sandbox Code Playgroud)
问题是我真的需要MILLISECONDS.
我在桌子下面
create table #t (Id int, Name char)
insert into #t values
(1, 'A'),
(2, 'A'),
(3, 'B'),
(4, 'B'),
(5, 'B'),
(6, 'B'),
(7, 'C'),
(8, 'B'),
(9, 'B')
Run Code Online (Sandbox Code Playgroud)
我想在name列中计算连续值
+------+------------+
| Name | Repetition |
+------+------------+
| A | 2 |
| B | 4 |
| C | 1 |
| B | 2 |
+------+------------+
Run Code Online (Sandbox Code Playgroud)
我尝试过的最好的事情是:
select Name
, COUNT(*) over (partition by Name order by Id) AS Repetition
from #t
order by Id
Run Code Online (Sandbox Code Playgroud)
但它没有给我预期的结果
的背景:
我试图确定客户在特定房间花费的时间长度.每个客户都可以通过a识别CustomerID,当他们访问时,他们被分配了一个VisitNumber.例如,如果客户今天访问他们会得到一个VisitNumber说111111.然后他们将离开并在下周回来,并将有一个VisitNumber111112.
当客户第一次访问时,他们最初没有被分配房间,并且当他们最终被分配到他们的指定房间时,将条目写入数据库.CurrentRoom因为他们还没有房间,所以会是空白的,这NewRoom是他们搬进去的房间.
此条目将记录为事件1(客户从无房间移动到房间),时间是交易发生的时间.如果客户将来在其现有停留期间被移动,将被记录为事件9(客户从一个房间移动到另一个房间),并且还将记录CurrentRoom&*NewRoom值.
问题
我已经设法从上一行和下一行的时间使用LAG和LEAD获得时间,然后计算两次之间的差异,这给了我客户在该特定房间花费的时间长度.
使用LAG时的问题是它获取的是先前的值,在某些情况下可能是来自完全不同的客户的值.我想获取特定和当前的LAG和LEAD值,然后计算出值之间的差异,以找出该客户在一个房间中花了多长时间.CustomerIDVisitNumber
演示数据:
CREATE TABLE #beds
(
[id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[User] [nvarchar](50) NULL,
[CustomerID] [nvarchar](50) NULL,
[Area] [nchar](10) NULL,
[Event] [nvarchar](50) NULL,
[VisitNumber] [nvarchar](50) NULL,
[Time] [datetime] NULL,
[CurrentRoom] [nvarchar](50) NULL,
[NewRoom] [nvarchar](50) NULL
)
GO
INSERT INTO #beds ([User],[CustomerID],[Area],[Event],[VisitNumber],[Time],[CurrentRoom],[NewRoom])
VALUES ('00001','C11111111','Area1',2,111111111,'2017-03-22 11:05:44.360','B22','B44'), …Run Code Online (Sandbox Code Playgroud) 我正在使用一个包含信用交易的表格,我想要显示销售时花费的信用额度.
在表中:
Credits由实体使用唯一实体代码添加(记录在列中GivenByUserCode)GivenByUserCodeis null).如果用户2018-01-02在报表上进行购买,则使用上述数据作为示例,应显示源自的所有这些信用BM01.增加的复杂性在于购买可以分为多个添加,请参阅购买2018-02-03分为3个添加.
我认为解决方案将与使用cte和over有关,但我没有使用这些的经验.我确实在SqlServerCentral上发现了类似(不相同)的问题.
任何帮助/方向将是最受欢迎的.
DECLARE @CreditLogs TABLE(CreditLogId int not null identity(1,1), Credits INT NOT NULL, OccurredOn DATETIME2(7) NOT NULL, GivenByUserCode VARCHAR(100) NULL)
INSERT INTO @CreditLogs (Credits, OccurredOn, GivenByUserCode) VALUES
(10, '2018-01-01', 'BM01')
, (10, '2018-01-01', 'BM01')
, (-10, '2018-01-02', NULL)
, (-5, '2018-01-04', NULL)
, (5, '2018-02-01', 'SP99')
, (40, '2018-02-02', 'BM02')
, (-40, '2018-02-03', …Run Code Online (Sandbox Code Playgroud) 我需要一些帮助来生成一个MS SQL 2012查询,该查询将匹配所需的阶梯输出.行按一个日期范围(帐户提交日期月份)汇总数据,列按另一个日期范围(付款日期月份)汇总
表1:帐户跟踪为集合放置的帐户.
CREATE TABLE [dbo].[Accounts](
[AccountID] [nchar](10) NOT NULL,
[SubmissionDate] [date] NOT NULL,
[Amount] [money] NOT NULL,
CONSTRAINT [PK_Accounts] PRIMARY KEY CLUSTERED (AccountID ASC))
INSERT INTO [dbo].[Accounts] VALUES ('1000', '2012-01-01', 1999.00)
INSERT INTO [dbo].[Accounts] VALUES ('1001', '2012-01-02', 100.00)
INSERT INTO [dbo].[Accounts] VALUES ('1002', '2012-02-05', 350.00)
INSERT INTO [dbo].[Accounts] VALUES ('1003', '2012-03-01', 625.00)
INSERT INTO [dbo].[Accounts] VALUES ('1004', '2012-03-10', 50.00)
INSERT INTO [dbo].[Accounts] VALUES ('1005', '2012-03-10', 10.00)
Run Code Online (Sandbox Code Playgroud)
表2:Trans跟踪付款
CREATE TABLE [dbo].[Trans](
[TranID] [int] IDENTITY(1,1) NOT …Run Code Online (Sandbox Code Playgroud) sql-server-2012 ×10
sql-server ×7
sql ×3
ssis ×2
t-sql ×2
aggregation ×1
c# ×1
c++-cli ×1
migration ×1
odbc ×1