sql - Inserting into multiple tables with identity column -
insert [dbo].[transactions] ([partnerid], [transactionid], [ver], [insertedby], [inserteddatetime], [savedby], [saveddatetime]) select [partnerid], [transactionid], [ver], [insertedby], [inserteddatetime], [savedby], [saveddatetime] @partransaction; set @transactionid = @@identity; insert [dbo].[remittances] ([transactionid], [remittancetransactionid],[insertedby], [inserteddatetime], [savedby], [saveddatetime]) select @transactionid, [remittancetransactionid], [insertedby], [inserteddatetime], [savedby], [saveddatetime] @parremittance; set @remittanceid = @@identity ; my issue here when there no record insert remittance table, @remittanceid getting identity value of transactions table.
so let's identity value inserted in transaction table 1, , there no records in remittance table, @transactionid , @remittanceid both set 1, want @transactionid value set 1 , @remittanceid null.
is there way if there no record inserted remittance table, @remittanceid value should set null.
you use @@rowcount here determine if update occurred within last statement.
insert [dbo].[remittances] ([transactionid],[remittancetransactionid],[insertedby],[inserteddatetime],[savedby],[saveddatetime]) select @transactionid,[remittancetransactionid],[insertedby],[inserteddatetime],[savedby],[saveddatetime] @parremittance; set @remittanceid = @@identity ; if(@@rowcount=0) set @remittanceid = null
Comments
Post a Comment