【发布时间】:2009-05-29 13:40:25
【问题描述】:
我有一个包含多个插入/选择语句的存储过程。假设我正在使用第一个插入来填充“经理”表。在插入时,会添加一个 ManagerId(自动递增),但不会在插入语句中引用。然后我希望使用该表中的 ManagerId 将一行插入另一个表,其中 ManagerId 是外键。示例代码如下..
USE [TEST]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sptInsertNewManager]
-- Add the parameters for the stored procedure here
@FName varchar(50),
@LName varchar(50),
@EMail varchar(100),
@UserRoleID int,
@LANUserID varchar(25),
@GroupID int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO [Manager]
([FName],
[LName],
[Email],
[UserRoleID],
[LANUserID],
[ActiveFlag],
[GroupID]
)
VALUES
(@FName
,@LName
,@EMail
,@UserRoleID
,@LANUserID
,1
,@GroupID);
COMMIT
SELECT ManagerId FROM [Manager] AS newManager WHERE LANUserID = @LANUserID;
--also insert into Users table.
INSERT INTO [dbo].[aspnet_Users] (
[UserId],
[UserName],
[LoweredUserName],
[ManagerId]
)
VALUES (
NEWID(),
@LANUserID,
LOWER(@LANUserID),
newManager)
END
这显然行不通。这是我解决这个问题的尝试。我对 SQL 还很陌生,所以对于这个问题的任何帮助将不胜感激。
【问题讨论】:
标签: sql sql-server stored-procedures