我有一个存储过程,它接受一个输入参数@CategoryKeys varchar,并将其内容解析为临时表,#CategoryKeys.
-- create the needed temp table.
CREATE TABLE #CategoryKeys
(
CategoryKey SMALLINT
);
-- fill the temp table if necessary
IF Len(rtrim(ltrim(@CategoryKeys))) > 0
BEGIN
INSERT INTO #CategoryKeys
(CategoryKey)
SELECT value
FROM dbo.String_To_SmallInt_Table(@CategoryKeys, ',');
END
Run Code Online (Sandbox Code Playgroud)
如果临时表有行,我想将表传递给一个单独的存储过程.我如何在单独的过程中创建一个参数来保存临时表?
我在vs 2012 Ultimate中开发了一个ssis项目.我使用项目部署模型,项目设置为以32位模式运行.包在我的开发环境中执行时没有错误,但是当我将它部署到ssis目录并尝试在那里运行时,我收到以下错误:

我将项目部署到Windows Server 2012 R2,数据库也是2012年的SSIS目录.
我已在服务器上打开该项目,并尝试使用断点调试服务器上的脚本任务,但错误发生在到达断点之前.
如果我禁用所有脚本任务,则程序包在服务器上执行时没有错误.
我还通过禁用系统加密来更新服务器本地安全选项:使用FIPS兼容算法作为Microsoft支持上发布的可能解决方案.
我也试图在服务器上作为文件系统包运行,我得到了同样的错误.
我还检查了我的变量是否正确,甚至将它们设置为读写变量.
第一个脚本任务代码如下(但所有脚本任务失败/此包中有三个).脚本任务引用了一个名为UHS.IntegrationServices.CommonUtils的dll,它已被GACed和dll在VS 2005中使用framwork 2.0.50727构建.
Public Sub Main()
Dim packageID As String = Dts.Variables("System::PackageID").Value.ToString()
Dim strInterfaceName As String = Dts.Variables("System::PackageName").Value.ToString()
Dim strConfigConnectionString1 As String = Dts.Variables("User::UHS_SSIS_CNXN_STR_CONFIG").Value.ToString()
Dim myConnection As OleDb.OleDbConnection = New OleDb.OleDbConnection
Dim mySqlCommand As OleDb.OleDbCommand = New OleDb.OleDbCommand
Dim myReader As OleDb.OleDbDataReader = Nothing
Dim rowsProcessed As Integer = 0
Try
myConnection.ConnectionString = strConfigConnectionString1
myConnection.Open()
Dim getEmailQuery As String = "SELECT Email …Run Code Online (Sandbox Code Playgroud) 我有一个包含两个日期列的表,都允许空值.
如果FileDate不为null,则AsOfDate需要等于(FileDate - Offset),其中Offset是一个默认为零的整数列.
这是我的表格def:
CREATE TABLE [import].[CMAR_GLXXXX](
[FileDate] [date] NULL,
[LoadDTM] [date] NULL,
[AsOfDate] [date] NULL,
[AccountNumber] [varchar](50) NOT NULL,
[CostCenter] [varchar](50) NOT NULL,
[OffSet] [int] default (0) NOT NULL,
[Value] [decimal](10,2) NOT NULL
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下内容:
(case when [File] IS NULL then NULL else dateadd(day,(-1 * [Offset]),[FileDate]) end)
Run Code Online (Sandbox Code Playgroud)
遗憾的是,计算出的列错误对话框在对表达式进
有任何想法吗?
哪个更快:Select Max(<IdentityKeyColumn>) + 1或者Select Ident_Current('<tablename>') +1?
我有一个450万行的表,旧的存储过程使用:
select @MaxID = Max(ID) + 1 from tablename.
我想更新它使用:
Select @MaxID = ident_current('tablename') + 1
但是,我不确定从哪里ident_current获取表的最后一个标识值.是从master或msdb数据库中的系统表中查询还是对表的数据进行某种最大聚合?
我需要做一个ident_current应该更快的案例,但我还没有找到有关ident_current工作原理的细节.