循环N表列并将连接的字符串插入同一行

Koo*_*eng 1 t-sql sql-server-2014

我有一个字符串列表,其中的连接值由分隔符分隔,如下所示:

DECLARE @stringlist NVARCHAR(MAX) = 'company_no,emp_no,emp_name,emp_type,salary_type....'
Run Code Online (Sandbox Code Playgroud)

我有一个带有动态数量的无名列的临时表,其中包含以下数据:

------------------------------
001   A01   John  P     A
001   A05   Mary  P     A
Run Code Online (Sandbox Code Playgroud)

我想拆分字符串并将每个拆分字符串插入一行中的每一列,如下所示:

-----------------------------------------------
company_no emp_no emp_name emp_type salary_type
001        A01    John     P        A
001        A05    Mary     P        A
Run Code Online (Sandbox Code Playgroud)

我可以将字符串拆分成多行.但是,如何拆分和循环临时表中的每一列以插入这些值?

Zoh*_*led 5

假设您的示例数据和所需结果表明目标表中的所有列都是某种字符串类型,我建议不要分割字符串.
而是从它创建一个动态sql插入语句:

DECLARE @Sql nvarchar(max);
SET @Sql = 'INSERT INTO <TempTableNameHere> 
            VALUES ('''+ REPLACE(@stringList, ',', ''',''') + ''');';

EXEC(@Sql);
Run Code Online (Sandbox Code Playgroud)