与存储过程和触发器的表关系
本文关键字:关系 触发器 存储过程 | 更新日期: 2023-09-27 18:28:08
为了简单起见,我有这个:
C#表单-->表A(通过存储过程)
我正在努力实现的目标:
C#表格-->表格A-->表格B-
从C#表单发送到表A的信息。从表A我想将相关列发送到表B
TableA (ProfileID) = Table B (UserID)
因此,我在我的存储过程中创建了一个触发器,该触发器与c#表单相连:
ALTER TRIGGER IDs
ON dbo.UserProfile
FOR INSERT
AS
DECLARE @ProfileID int
SELECT
ProfileID
FROM
dbo.UserProfile
INSERT INTO dbo.Users(Users.UserID)
VALUES(@ProfileID)
GO
但是当我的存储过程从C#表单执行时,我会得到一个错误:
列名"UserID"无效。
提前谢谢。
正如问题评论中所提到的,最好将插入插入到已经调用的存储过程中的事务中,但如果必须执行触发器,这就是它应该是什么样子。请注意具体的名称,然后从INSERTED表中插入。
ALTER TRIGGER UserProfile_CreateUser
ON dbo.UserProfile
FOR INSERT
AS
BEGIN
INSERT dbo.Users (UserID)
SELECT ProfileID
FROM INSERTED
END
GO
有关虚拟表的详细信息:http://msdn.microsoft.com/en-us/library/ms191300.aspx