Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从文本导入SQL_Sql_Sql Server_Text_Ssms - Fatal编程技术网

将数据从文本导入SQL

将数据从文本导入SQL,sql,sql-server,text,ssms,Sql,Sql Server,Text,Ssms,首先,我的源数据是excel电子表格。从那里,我将它们保存为.csv,然后在记事本++中打开它们,然后将它们保存为.txt文件。当我这样做时,我得到以下错误 警告0x802092a2数据流任务1;由于将数据从长度为50的数据流列“Xyz”插入长度为2的数据库列“Xyz”,可能会发生截断 对于所有字符字段或值为非数字且没有小数的字段,都会显示此错误。我尝试了一个技巧,将它从文本文件导入access,然后将其导出为文本文件,但没有成功 有什么想法吗?这是我第一次尝试SQL,请原谅我的天真。仅供参考,

首先,我的源数据是excel电子表格。从那里,我将它们保存为.csv,然后在记事本++中打开它们,然后将它们保存为.txt文件。当我这样做时,我得到以下错误

警告0x802092a2数据流任务1;由于将数据从长度为50的数据流列“Xyz”插入长度为2的数据库列“Xyz”,可能会发生截断

对于所有字符字段或值为非数字且没有小数的字段,都会显示此错误。我尝试了一个技巧,将它从文本文件导入access,然后将其导出为文本文件,但没有成功


有什么想法吗?这是我第一次尝试SQL,请原谅我的天真。

仅供参考,您可以通过Excel直接保存到TXT,但保存为CSV在任何情况下都不会有问题

首先,我根据我的经验做了一些假设。我假设您在使用SQL Server导入和导出向导时使用了“平面文件源”选项

如果是这种情况,您需要单击左侧并转到左侧的“高级”选项卡,然后分别转到每列并更改其数据类型(最有可能是字符串,但如果您知道某列中只有整数值,则可以使用适合的数据类型)然后将outputcolumnwidth设置为高于每列中最大数据大小的数字

如果要通过向导创建表,则在进入向导的该部分时,可能需要更改字段类型。如果您正在使用现有的SQL表。。。事情有点棘手,在我们给你一个可靠的答案之前,你需要给我们更多关于你正在做什么的信息


基本上,您希望源列定义与目标列尽可能地匹配。如果要插入到现有表中,您可能需要首先在Excel中调整数据以适合目标列类型。

如果要在列中存储50个字符,则应声明该列的长度至少为50。我使用的是SQL Server Management Studio 2014 edition。例如,Excel中的值为32,我将其保存为.csv,然后保存为文本,在文本文件中,它的读数为32。这两个版本的长度都只有2个字符。为什么要做所有的工作来获取一个.txt文件?您可以使用SSMS直接从Excel工作表导入。我对这一点非常陌生,当我尝试从Excel导入时,错误远远大于文本文件。我已经创建了一个表。对于这个问题,我将重点讨论一种字段类型。当我从手册中取出它时,它的字段类型为数字(9,2)。这告诉我小数点左边是9,右边是2。我已经创建了一个表。对于这个问题,我将重点讨论一种字段类型。当我从手册中取出它时,它的字段类型为数字(9,2)。这告诉我小数点左边是9,右边是2。所以现在我要导入“平面文件源”。我去了左边的“Advanced”,现在在讨论的场地上。我选择十进制。数据比例是我想告诉它的(9,2)还是有其他方法?使用数字,然后选择9表示精度,选择2表示比例,如果你想更精确的话。小数不允许精确。文件数据类型有点奇怪。此外,将数据插入的表列是否可以接受此数据也很重要。目标列也必须是十进制(9,2)。