为了简单起见,我有这个:
C#表格 - > tableA(通过存储过程)
我想要实现的目标:
C#表格 - > tableA - > tableB的
从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'。
提前致谢。
答案 0 :(得分:1)
正如在有关问题的评论中所提到的,将插入放入已经调用的存储过程中的事务中可能更好,但是如果必须执行触发器,那么它应该是什么样子。请注意特定名称,然后从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