如何动态插入 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
- Click here 查看结果
如何将数组传递给 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
- Click here 查看结果