SELECT sub-
query returned more than one row. with scalar CAST --
Dürfen mehrere Einträge zurückkommen (also: interessieren die)? Wenn ja, wäre in diesem Fall dann eine Stored Procedure richtig, da die ein komplettes Resultset liefert. Falls es nicht relevant ist und die erste Fundstelle einfach genommen werden soll, dann einfach ein max() oder top 1 einfügen, also zB
@Bankleitzahl= (SELECT top 1 Bankleitzahl FROM Bankdaten WHERE Bankname = @bankname);
oder
@Bankleitzahl= (SELECT max(Bankleitzahl) FROM Bankdaten WHERE Bankname = @bankname);