繁体   English   中英

如何根据SQL Server中的select语句的条件插入记录

[英]How to insert a record based on the condition of select statement in SQL Server

我有以下表格,例如:

  • 表1:ID,名称
  • 表2:id,学校,t1Id

要求是:

  • 首先select t1id from Table1 where name = @name
  • 如果记录存在,请insert Table2 value (@school,t1id)
  • 如果记录不存在,请insert Table1 value(@name) ,然后返回此新插入的记录的ID以执行insert Table2 value (@school,t1id)

我的问题是:

如何在不使用存储过程的情况下使用一个SQL语句或事务来实现这一目标?

我使用的是Spring,但现在我将这些SQL语句的执行分开,并与数据库交互太多次。

所以我想一次执行。

您可以执行代码块来检查是否存在状况,而无需如下所示的存储过程。 您还可以在一个语句中将数据插入到多个表中,如下面的链接所述(与您的情况相同):

如何在SQL Server中同时将数据插入到两个表中?

IF EXISTS(select t1id from Table1 where name = @name)
BEGIN
      insert into Table2 
      SELECT @school,t1id from Table1 where name = @name
END
ELSE
BEGIN
      insert into Table1 values (@name);
      insert into Table2
      SELECT @school,SCOPE_IDENTITY()
END

您应该能够使用IF EXISTS命令来帮助您。 这是有关MSDN文章的链接。 您的情况稍有不同,但是该技术仍然可以使用。 http://blogs.msdn.com/b/miah/archive/2008/02/17/sql-if-exists-update-else-insert.aspx?Redirected=true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM