![](/img/trans.png)
[英]SQL - Dynamically generated Insert or Select statement based on some condition
[英]How to insert a record based on the condition of select statement in SQL Server
我有以下表格,例如:
要求是:
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语句的执行分开,并与数据库交互太多次。
所以我想一次执行。
您可以执行代码块来检查是否存在状况,而无需如下所示的存储过程。 您还可以在一个语句中将数据插入到多个表中,如下面的链接所述(与您的情况相同):
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.