正在将 txt 导入 SQL 服务器

Importing txt to SQL Server

我搜索了很多,但找不到将此 txt 文件导入到 SQL 服务器的任何解决方案。 它有 number(1),class(A),name(Eda),lastname(KKKK),answers1,answers2 列。

1AEdaKKKK           ACDBDCABCE,BBCBBACABA
2AİremDudson        BDCEDDCABA,BDCABDEAAA
3ANefisGaga         ADCBDACDBC,AEAEBAAEDA
4ABohoDhae          BDCABDEAAA,ADCDBECBBA

我该怎么办?

您可以导入文件,然后根据条件手动拆分它们。

例如我用这段代码测试了它并且它有效

-- CREATE TABLE tmpImport ([col1] NVARCHAR(200), [col2] NVARCHAR(200))
-- BULK INSERT tmpImport FROM 'C:\textfile.txt' WITH (ROWTERMINATOR = '0x0a')
-- CREATE TABLE tblName ([number] INT, [class] CHAR(1), [name] NVARCHAR(50), [lastname] NVARCHAR(50), [answers1] NVARCHAR(50), [answers2] NVARCHAR(50))
-- UPDATE tblImport SET [col1] = LTRIM(RTRIM([col1])), [col2] = LTRIM(RTRIM([col2])) -- maybe not necessary

INSERT tblName ([number], [class], [name], [lastname], [answers1], [answers2])
SELECT SUBSTRING([col1], 1, PATINDEX('%[^0-9]%', [col1]) - 1) -- number
    , SUBSTRING([col1], PATINDEX('%[^0-9]%', [col1]), 1) -- class
    , SUBSTRING([col1], PATINDEX('%[^0-9]%', [col1]) + 1,
                PATINDEX('%[ABCDEFGHIJKLMNOPQRSTUVWXYZ]%',
                SUBSTRING([col1], PATINDEX('%[^0-9]%', [col1]) + 2, LEN([col1])) COLLATE sql_latin1_general_cp1_cs_as)) -- firstname
    , SUBSTRING([col1], 
                CHARINDEX(SUBSTRING([col1], PATINDEX('%[^0-9]%', [col1]) + 1,
                PATINDEX('%[ABCDEFGHIJKLMNOPQRSTUVWXYZ]%',
                SUBSTRING([col1], PATINDEX('%[^0-9]%', [col1]) + 2, LEN([col1])) COLLATE sql_latin1_general_cp1_cs_as)), [col1]) + LEN(SUBSTRING([col1], PATINDEX('%[^0-9]%', [col1]) + 1,
                PATINDEX('%[ABCDEFGHIJKLMNOPQRSTUVWXYZ]%',
                SUBSTRING([col1], PATINDEX('%[^0-9]%', [col1]) + 2, LEN([col1])) COLLATE sql_latin1_general_cp1_cs_as))), LEN([col1])) -- lastname
    , SUBSTRING([col2], 1, CHARINDEX(',', [col2]) - 1) -- answers1
    , SUBSTRING([col2], CHARINDEX(',', [col2]) + 1, LEN([col2])) -- answers2
FROM tmpImport

-- SELECT * FROM tblName -- check
-- DROP TABLE tmpImport

虽然这看起来有点臃肿(并且可能会变得更简单)。

或者,在导入文件之前输入分隔符,这样会变得非常非常容易。