【发布时间】:2019-01-16 19:21:50
【问题描述】:
这是我添加多个播放器的存储过程:
CREATE PROCEDURE [dbo].[AddMultipleUserofSameCountry]
@UserIds NVARCHAR(MAX),
@CountryCode INT,
@OwnsHasAccess INT,
@QryResult INT OUTPUT
AS
BEGIN TRY
SET @QryResult = 0;
BEGIN TRANSACTION
BEGIN
INSERT INTO Players (CountryCode, UserId, OwnsHasAccess, InsertedWhen)
VALUES (@CountryCode,
(SELECT Value FROM dbo.SplitString(@UserIds, ',')),
@OwnsHasAccess, GETDATE());
END
COMMIT TRANSACTION
SET @QryResult = 1;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
SET @QryResult = 0;
END CATCH
UserIds 是逗号分隔的字符串值
DAL 代码
array = string.Join(",", UserIds.Select(n => n.ToString()).ToArray());
SqlParameter sqlParam = cmdProc.Parameters.AddWithValue("@UserIds", array);
sqlParam.SqlDbType = SqlDbType.VarChar;
请建议有什么方法可以通过多个 UserId 来插入多个播放器
【问题讨论】:
-
您使用了 MySQL 标签,但代码看起来更像是用于 SQL Server。请检查标签并在必要时进行更正。请也为您的 DBMS 的特定版本添加标签。
-
是否有理由不为每个 id 调用该过程?是不是必须一个一个来完成?
标签: sql sql-server sql-server-2008 stored-procedures