最简单的方法 - 最好只使用SQL Server Management Studio - 从文件中将文本插入Text
类型列(text, ntext, varchar(max), nvarchar(max)
)。
说一张桌子
textFileContent(id, textData)
并且想做
insert into textFileContent(textData)
values([data read from a file, complete file content])
此外,是否可以以类似的方式进行更新? E.g。
update textFileContent
set textData = [data read from a file, complete file content]
where id = 1
答案 0 :(得分:2)
您可以使用xp_cmdshell:
create table #mytable
(
id int IDENTITY(1,1) NOT NULL,
result nvarchar(MAX) NULL
)
insert into #mytable (result)
exec xp_cmdshell 'type c:\somefile.txt' -- this may require cmd before it
这应该将文本转储到表中,其中硬返回表示新记录。
否则,如果您使用SQL Express,则仅限于BCP和BULK INSERT。如果您首先创建表格以生成格式文件,则BCP中有命令。请记住,如果它是Unicode,您的分隔符是两个字符\n\0\r\0
(或类似的东西)
否则,如果您使用SQL Standard或更高版本,则可以使用SSIS。您可以创建数据流,删除输入文本文件的图标,删除目标表的图标,然后单击“播放”。要使这与SQL一起工作,您需要使用上面的xp_cmdshell之类的东西来调用它。就文本文件而言,SSIS是您对BCP所做的视觉。
答案 1 :(得分:0)
答案取决于您的用例。我猜你需要在项目开始时加载数据......如果你需要将数据“提供”到SQL服务器那么我会有不同的答案。
以下是最简单的选择:
答案 2 :(得分:0)
您可以使用OPENROWSET从文本文件导入数据。但是,为此您可能还必须定义格式文件。您可以找到更多帮助here