如何动态插入 table 列的值

how to insert values of a column of a table dynamically

如何将数组传递给 SQL SERVER 2008 存储过程并将数组的所有值插入数据库 table。

例如:从 ASP.NET mvc C# 开始,我将传递一个参数,该参数具有多个以逗号分隔的值

如下

string category = "Cat1, Cat2, Cat3, Cat4";

我想将上述字符串的所有值插入到名为 Categories 的 table 中。

如何使用 SQL SERVER 2008.

实现此目的

您可以轻松完成此操作,方法是将 CSV 值转换为 XML 格式,然后使用 CROSS APPLY 将其拆分为行并将其插入您的 table。

CREATE TABLE #Categories(VALUE VARCHAR(100))

DECLARE @STR VARCHAR(500)='Cat1, Cat2, Cat3, Cat4'

INSERT INTO #Categories(VALUE)
SELECT LTRIM(RTRIM(Split.a.value('.', 'VARCHAR(100)'))) 'VALUE' 
FROM  
(
     -- To change ',' to any other delimeter, just change ',' before '</M><M>' to your desired one
     SELECT CAST ('<M>' + REPLACE(@STR, ',', '</M><M>') + '</M>' AS XML) AS Data             
) AS A 
CROSS APPLY Data.nodes ('/M') AS Split(a)

SELECT * FROM #Categories