使用单个动态数据插入多行
Insert multiple rows with single dynamic data
我正在尝试将具有不同 @EmpId
的多行的相同数据插入 table。
查询:
CREATE PROCEDURE usp_SaveEmployee
(@EmpIds varchar(50), //1,2,3,4
@StateId int,
@CountryId int,
@Comments varchar(50))
AS
BEGIN
INSERT INTO dbo.tblEmpDetails (EmpId, StateId, CountryId, Comments)
SELECT *
FROM [dbo].[FN_ListToTable] (',',@EmpIds)
-- How can I add this: (@StateId, @CountryId, @Comments)
END
或者有其他更好的方法来处理这个问题吗?
只需在 select 列表中定义正确的列:
INSERT INTO dbo.tblEmpDetails (EmpId, StateId, CountryId, Comments)
SELECT [<ReturnedColumn>], @StateId, @CountryId, @Comments
from dbo.FN_ListToTable (',', @EmpIds);
还要注意 SQL 服务器有一个 built-in string_split() 函数。
我正在尝试将具有不同 @EmpId
的多行的相同数据插入 table。
查询:
CREATE PROCEDURE usp_SaveEmployee
(@EmpIds varchar(50), //1,2,3,4
@StateId int,
@CountryId int,
@Comments varchar(50))
AS
BEGIN
INSERT INTO dbo.tblEmpDetails (EmpId, StateId, CountryId, Comments)
SELECT *
FROM [dbo].[FN_ListToTable] (',',@EmpIds)
-- How can I add this: (@StateId, @CountryId, @Comments)
END
或者有其他更好的方法来处理这个问题吗?
只需在 select 列表中定义正确的列:
INSERT INTO dbo.tblEmpDetails (EmpId, StateId, CountryId, Comments)
SELECT [<ReturnedColumn>], @StateId, @CountryId, @Comments
from dbo.FN_ListToTable (',', @EmpIds);
还要注意 SQL 服务器有一个 built-in string_split() 函数。