我对 SQL Server 还比较陌生,希望这里有人能帮我(我使用的是 SQL Server 2008)。
以下是一个小程序,它可以按预期运行。
现在我想使用相同的过程来更新多个表,因为所有这些表都具有完全相同的列名和列格式,唯一的区别是表名称的第二部分,在此处添加了“XXX”。
有人能告诉我如何使其具有动态性并为我提供一些解释吗? 我无法提供更多信息,因为我不确定该如何处理 - 除了可能声明 '@sql nvarchar(max)' 并将整个查询包装在 'SET @sql = N'...' ' 中以便执行。
我的存储过程:
非常感谢您对此的任何建议和意见,Mike。
以下是一个小程序,它可以按预期运行。
现在我想使用相同的过程来更新多个表,因为所有这些表都具有完全相同的列名和列格式,唯一的区别是表名称的第二部分,在此处添加了“XXX”。
有人能告诉我如何使其具有动态性并为我提供一些解释吗? 我无法提供更多信息,因为我不确定该如何处理 - 除了可能声明 '@sql nvarchar(max)' 并将整个查询包装在 'SET @sql = N'...' ' 中以便执行。
我的存储过程:
CREATE PROCEDURE [dbo].[Cal_UpdateTeam]
@team nvarchar(100),
@teamID int,
@notes nvarchar(1000),
@log nvarchar(100),
@admin varchar(50)
AS
BEGIN
SET NOCOUNT ON;
BEGIN
IF NOT EXISTS
(
SELECT *
FROM Cal_XXX
WHERE teamID = @teamID
)
INSERT INTO Cal_XXX
(
team,
teamID,
notes,
log,
admin
)
SELECT @team,
@teamID,
@notes,
@log,
@admin
ELSE
UPDATE Cal_XXX
SET team = @team,
teamID = @teamID,
notes = @notes,
log = @log,
admin = @admin
WHERE teamID = @teamID
END
END
非常感谢您对此的任何建议和意见,Mike。