我试图将数据从Excel文件导入SQL Server数据库.我无法这样做因为我在日志文件中遇到以下错误.请帮忙.日志错误如下: -
[OLE DB Destination [42]]错误:发生了OLE DB错误.错误代码:0x80040E21.OLE DB记录可用.来源:"Microsoft SQL Native Client"Hresult:0x80040E21说明:"多步OLE DB操作生成错误.检查每个OLE DB状态值,如果可用.没有工作.".
[OLE DB目标[42]]错误:输入"OLE DB目标输入"(55)的输入列"F2的复制"(5164)出错.返回的列状态为:"该值违反了列的完整性约束.".
[OLE DB目标[42]]错误:"输入"OLE DB目标输入"(55)"失败,因为发生错误代码0xC020907D,并且"输入"OLE DB目标输入"(55)"上的错误行处置指定失败出错了.指定组件的指定对象发生错误.
[DTS.Pipeline]错误:组件"OLE DB Destination"(42)上的ProcessInput方法失败,错误代码为0xC0209029.标识的组件从ProcessInput方法返回错误.该错误特定于组件,但错误是致命的,将导致数据流任务停止运行.
[DTS.Pipeline]错误:线程"WorkThread0"已退出,错误代码为0xC0209029.
[Excel Source [174]]错误:尝试向数据流任务缓冲区添加行失败,错误代码为0xC0047020.
[DTS.Pipeline]错误:组件"Excel Source"(174)上的PrimeOutput方法返回错误代码0xC02020C4.当管道引擎调用PrimeOutput()时,组件返回失败代码.失败代码的含义由组件定义,但错误是致命的,管道停止执行.
登台表是仅在数据仓库项目中使用还是在任何SSIS
项目中使用?我想知道什么是临时表?谁能给我一些关于如何使用它以及在什么情况下实现它的例子?另外,我可以在使用它时了解最佳做法吗?
在我的应用程序中,动态创建脚本任务.
在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中动态设置脚本任务的源代码?
我在SSIS中创建一个ETL,我希望我的数据源是限制查询,比如select * from table_name where id='Variable'
.这个变量是我定义为User created变量的.
我不明白我的源查询如何与SSIS范围变量进行交互.
目前唯一的选择是
我想要的是拥有一个带有变量作为参数的SQL语句
我使用以下代码将目录的修改日期时间写入标签
string selectedPath = comboBox1.SelectedItem.ToString();
DateTime lastdate = Directory.GetLastWriteTime(selectedPath);
datemodified.Text = lastdate.ToString();
Run Code Online (Sandbox Code Playgroud)
它返回日期12/31/1600 7:00:00 PM,我不知道从哪里获取该日期.任何人都可以帮助我理解为什么它会返回该日期以及我如何解决它?我正在使用.NET 3.5
我只想将平面文件中的两列导入到新表中.我已经设置了一列"代码",varchar(50)
另一列是"描述" nvarchar(max)
.
导入失败,并显示以下消息:
- Executing (Error)
Messages
Error 0xc02020a1: Data Flow Task 1: Data conversion failed. The data conversion for column "Description" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.".
(SQL Server Import and Export Wizard)
Error 0xc020902a: Data Flow Task 1: The "output column "Description" (14)" failed because truncation occurred, and the truncation row disposition on "output column "Description" (14)" specifies …
Run Code Online (Sandbox Code Playgroud) 我有一个21 Gb的数据库; 其中20 Gb是文件(FileStream),我从表中删除了所有文件但是当我进行备份时,备份文件仍为21 GB.
为了解决这个问题,我成了"释放未使用空间"的理念.
所以我试图缩小我的数据库,如下所示:
USE Db;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE Db
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (Db, 100);
GO
-- Reset the database recovery model.
ALTER DATABASE Db
SET RECOVERY FULL;
GO
SELECT file_id, name
FROM sys.database_files;
GO
DBCC SHRINKFILE (1, TRUNCATEONLY);
Run Code Online (Sandbox Code Playgroud)
如果我在XX分钟后对数据库进行备份,那么备份文件大小为1 Gb,这样我就可以看到已经成功清理了未使用的空间.换句话说,上面的Sql代码工作正常(XX分钟后的数据库是schrunk).
这个问题我需要等待,直到此查询(收缩操作)完成,所以我努力做到以下几点: …
我正在SSIS建立一个项目.虽然该项目的工作正如我希望它的工作(这是重要的,对吧?),其他人却被数据流任务的"丑陋"放置和它们之间的连接线"困扰".
我手动将项目移动到地图上更好的位置,但只能调整连接线.我包含的屏幕截图(我希望你能看到)告诉你现在的情况.
我尝试寻找"自动排列"或类似的东西,在菜单栏中找不到任何内容或右键单击.有没有办法自动安排数据任务项,使它们看起来更好?
如果这有任何区别,我正在使用SSIS 2012.
什么是使用OLE DB源的EzAPI代码,数据访问模式为"来自变量的SQL命令"并分配变量?
每月一次,我们需要使用生产数据子集刷新公共测试站点.我们已经确定,根据我们的需求,SSIS解决方案最适合完成此任务.
我的目标是系统地构建大量(100+)"复制"包.EzAPI是SSIS对象模型的友好包装器,它似乎是一种保存鼠标点击的好方法.
我希望我的包装看起来像
User::sourceQuery
这是我的表到表复制包的代码.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SqlServer.SSIS.EzAPI;
using Microsoft.SqlServer.Dts.Runtime;
namespace EzApiDemo
{
public class TableToTable : EzSrcDestPackage<EzOleDbSource, EzSqlOleDbCM, EzOleDbDestination, EzSqlOleDbCM>
{
public TableToTable(Package p) : base(p) { }
public static …
Run Code Online (Sandbox Code Playgroud) 我正在做一些SQL练习,但我陷入了我将要描述的那个.
有一个名为product的表有3列:maker,model和type.
这是结果 select * from product
该练习说:找出只生产相同类型模型的制造商,这些模型的数量超过1. Deduce:maker,type.
正确的查询应该返回:
我的方法是先看看哪些制造商只生产一种产品,然后排除那些只有一种型号的制造商.为此,我使用了以下查询,它返回正确的结果,除了我只能设法显示制造商,但不是类型和练习要求两者.
这是我的查询:
SELECT
DISTINCT maker
FROM product
GROUP BY maker
HAVING COUNT(distinct type) = 1
AND
COUNT(model)> 1
Run Code Online (Sandbox Code Playgroud)
它返回:
然后,当我尝试通过这样做来显示类型时:
SELECT
DISTINCT maker,type
FROM product
GROUP BY maker,type
HAVING COUNT(distinct type) = 1
AND
COUNT(model)> 1
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
你知道为什么这不能按预期工作吗?你会怎么做才能解决这个问题?我一直试图解决这个问题超过3个小时没有成功.:( 请帮帮我.