我试图创建一个存储过程,该列表接收具有特定列的值的字符串,然后为每个值插入一行按“,”。如何从包含特定列的字符串中执行SQL Server中的INSERT
例如:
--The string I mentioned
@Objectid = '15, 21, 23, 53'.
--Then I wish to insert those values into a table like for instance
#Result(ID bigint, AppID bigint, ObjectID bigint)
因此,我希望在该表执行插入,并且每个@Objectid的 值放置到不同的行的#Result并在 柱的ObjectID,同时在同时,将其他列填充为 的值,这些值存储在同一存储过程的变量中。有没有办法做到这一点?如果是这样,有没有办法做到这一点,而不使用游标?
传递给PROC –
有在SQL的方式分裂出一个字符串之前使用在代码表值参数和分割(例如,当由逗号delimeted) - 看看[现有Q&A]( http://stackoverflow.com/search?q=%23sql-server+split+a+string)。但是,如果您事先能够分配您的ID,情况会好得多。您不需要'CURSOR',但可能需要使用'WHILE'循环多次执行'INSERT'语句。你的源系统是什么(即你如何得到Id的列表)? – Serge
哪个版本的SQL Server?在2016年有可以使用的STRING_SPLIT函数 – Kostis