Problem z wywołaniem procedury SQL z poziomu C#

0

Witam
Mam taki mały problem. Otóż próbując wywołać procedurę SQL-a z poziomu C#-a napotkałem na następujący komunikat i nie wiem jak pozbyć się tego problemu :-/ :

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.

Jest to niezrozumiałe dla mnie, gdyż w procedurze zawarte są same insertu, a wywołanie jej z poziomu SQL servera 2005 nie sprawia żadnego problemu. Czy ktoś może mi pomóc?
Byłbym dozgonnie wdzięczny

0

A jaką metodą wywołujesz procedurę? Jeśli procedura nic nie zwraca powinieneś użyć ExecuteNonQuery().

0

darek963 - jest napisane wyraznie "Subquery returned more than 1 value". poza tym zapytania niezwracajace wartosci mozna wykonywac jako zwykly execute zwykelgo selecta -- tyle ze marnujesz wtedy czas i zasoby

piomate - opis bledu jest dosc wyrazny.. musiala sie u Ciebie pojawic jakakolwiek select albo update z podzapytaniem ktore zwracalo wiele wartosci a komendy SQL chcialy go porownac z poedyncza warotscia.. np

select * from tab
where (select indeks from tab2 where tab.id=tab2.id) > 1000

z kolei

select * from tab
where (select count(indeks) from tab2 where tab.id=tab2.id) > 1000

bedzie poprawne, bo wewnetrzne zapytanie zwraca pojedyncza wartosc..

to ze procedura zawiera same inserty jeszce nic nie mowi.. mozesz miec tam polecenie kopiowania z tablicy do tablicy np.

insert into nowa_tab select * from tab where (select indeks from tab2 where tab.id=tab2.id) > 1000

co zaowocuje dokladnie tym samym co pierwszy przyklad

1 użytkowników online, w tym zalogowanych: 0, gości: 1