Insert dependent records in multiple tables, MSSERVER 2012
But it will only inserts the last inserted ID from the Query before.


This is current as documented in https://docs.microsoft.com/en-us/sql/t-sql/functions/ident-current-transact-sql:


  Returns the last identity value generated for a specified table or view.
  The last identity value generated can be for any session and any scope.


You can get all the identities generated in an insert using the OUTPUT clause as documented at https://docs.microsoft.com/en-us/sql/t-sql/queries/output-clause-transact-sql


  The Source file is a simple txt file i imported with the SQL-Server Assistant, so i could easily add keys or indexes, or use custom imports.


Assuming that you don't need to deduplicate anything at this point (i.e. you won't have two companies with the same address), and you do not need to keep ID values unique between the tables, you could:


Add an ID column to the source table of the right type (INT, UNIQUEIDENTIFIER, ...) which is populated by default (i.e. IDENTITY(1,1) or DEFAULT NEWID())
Use that for the IDs of all the inserts coming from it (if you are using IDENTITY columns you will need to temporarily set IDENTITY_INSERT off for them as this is done, see https://docs.microsoft.com/en-us/sql/t-sql/statements/set-identity-insert-transact-sql


No need for OUTPUT or extra lookups.


  I can change the Database if necassary or redesign if you think im doing something stupid ;)


You'll need to more thoroughly describe what you are trying to model before we can help at all with that. It does seem strange to me that a company record would have a reference to contact details rather than the other way around: if is more likely that a company would have several contact methods than that one contact method could be relevant to more then one company.