这个问题已经在这里有了答案 :
如何在存储过程中一次全部插入两个表?[重复] (1个答案)
7年前关闭。
我有2张桌子,custlogin
和custinfo
:
custlogin
:
custid int primary key auto notnull
custusename varchar(25)
custpassword varchar(50)
custinfo
:
custid foriegnkey custlogin.custid ondelete set NULL
custfirstname varchar(25)
custlastname varchar(25)
custaddress varchar(100)
我想编写一个存储过程,该过程将插入两个表中
更准确地说,是插入custlogin
with custusername custpassword
,它将返回custid
用作的外键custinfo
。
我进行了很多搜索,但未找到任何解决方案。
如下图所示。SCOPE_IDENTITY()
在这种情况下,您可以用来获取最后一个自动生成的ID以及此存储过程的作用域:
create procedure NameOfYourProcedureHere
as
begin
SET NOCOUNT ON;
SET XACT_ABORT ON;
insert into custlogin(custusename, custpassword)
values ('','') -- put values here (from parameters?)
insert into custinfo(custid, custfirstname, custlastname, custaddress)
values (SCOPE_IDENTITY(), '', '', '') -- put other values here (from parameters?)
SET NOCOUNT OFF;
SET XACT_ABORT OFF;
end
问题内容: 我有一张桌子,我需要在99%的时间内自动分配ID(其他1%似乎使用身份列来排除)。因此,我有一个存储过程来获取以下行中的下一个ID: `` 检查必须检查用户是否手动使用了ID并找到下一个未使用的ID。 当我依次调用它并返回1、2、3时,它可以正常工作。我需要做的是在多个进程同时调用此方法的情况下提供一些锁定。理想情况下,我只需要它专用于围绕此代码锁定last_auto_id表,以便第二
本文向大家介绍SQLServer用存储过程实现插入更新数据示例,包括了SQLServer用存储过程实现插入更新数据示例的使用技巧和注意事项,需要的朋友参考一下 实现 1)有相同的数据,直接返回(返回值:0); 2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2); 3)没有数据,进行插入数据处理(返回值:1)。 【创建存储过程】 【执行方式】 返回值0,已经存在相同的 返回值1,插入成功
分隔符$$CREATE PROCEDURE
问题内容: 做一个学校的项目,所以任何帮助将是巨大的谢谢! 我有两个表-如何插入两个表中?因此,两个表都是链接的。 用自动递增的主键调用第一个表 第二个称为的表具有链接到父表的外键 问题答案: 您需要执行以下操作: SCOPE_IDENTITY : 返回插入到同一作用域的标识列中的最后一个标识值。范围是一个模块:存储过程,触发器,函数或批处理。因此,如果两个语句位于相同的存储过程,函数或批处理中,
问题内容: 我想创建一个存储过程,以便在表“ dbo.Terms”中插入新行 但是在这里显示错误(@Term_en =’Cat’)不正确的语法有帮助吗? 问题答案: 我假设您要在表中插入cat等值;为此,您需要使用过程变量中的值。我不会将您的过程命名为与您的表相同的名称,否则会引起各种混乱;您可以找到一些用于命名标准的好资源(或来自Adventureworks的婴儿床) 并进行测试
问题内容: 这与问题653714非常相似,但是对于MySQL而不是SQL Server。 基本上,我有一个复杂的选择,它是几个存储过程的基础。我想在存储过程中共享代码,但是,我不确定该怎么做。我可以这样做的一种方法是,使共享选择存储过程,然后从其他存储过程中调用该存储过程。我不知道如何使用嵌套存储过程的结果集。如果我可以将它们放在临时表中,则可以有效地使用结果,但是我不知道如何将它们放入临时表中。