【问题标题】:how to insert values of a column of a table dynamically如何动态插入表的列的值
【发布时间】:2015-04-30 12:48:39
【问题描述】:

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

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

如下

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

我想将上述字符串的所有值插入一个名为 Categories 的表中。

我如何使用SQL SERVER 2008 来实现这一点。

【问题讨论】:

标签: .net sql-server model-view-controller


【解决方案1】:

您可以通过将CSV 值转换为XML 格式,然后在其上使用CROSS APPLY 将其拆分为行并将其插入到您的表格中来轻松完成。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    相关资源
    最近更新 更多