这是我的存储过程输入参数,我想拆分列名和列值来插入临时表,然后移动主表生成表。
临时表,如列名和值
实施例
Create Proc sample (@name VARCHAR(MAX))
@NAME='column1=value1,column2=value2,column3=value3'
Create Table #temp(columnname varchar(max),value varchar(max))
我的问题:
任何帮助将不胜感激
答案 0 :(得分:3)
我想引导您阅读Erland Sommarskog刚才写的详细文章,http://www.sommarskog.se/arrays-in-sql-2008.html。
可以在此处找到分割函数的资源http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648。
这是我最喜欢的分割功能:
CREATE FUNCTION dbo.Split (@sep char(1), @s varchar(512))
RETURNS table
AS
RETURN (
WITH Pieces(pn, start, stop) AS (
SELECT 1, 1, CHARINDEX(@sep, @s)
UNION ALL
SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1)
FROM Pieces
WHERE stop > 0
)
SELECT
pn,
SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS s
FROM Pieces
)
我相信StackOverflow上已有几个主题和其他示例。