sql >> Database >  >> RDS >> Sqlserver

UDT als parameter in EF4-query

Volgens mij heb je je vraag grotendeels beantwoord. Berekening moet worden gedaan op de databaseserver en u wilt gewoon resultaat krijgen, nietwaar? Als u SQL Server 2008 gebruikt, kunt u een opgeslagen procedure maken die tabelwaardeparameter accepteert . Nu kunt u deze procedure ofwel rechtstreeks aanroepen met ADO.NET of met EF en context.ExecuteStoreQuery waar je nog steeds DataTable passeert naar SqlParameter met SqlDbType.Structured .

Als u geen SQL Server 2008 gebruikt, hebt u een opgeslagen procedure nodig met één grote nvarchar-parameter die de hele lijst doorgeeft als een door komma's gescheiden tekenreeks. Uw opgeslagen procedure zal eerst deze lijst ontleden naar een tijdelijke tabel en verwerk de berekening vervolgens op dezelfde manier als met de tabelwaardeparameter.




  1. Java ResultSet.getString() voor datumveld met 00:00:00.0

  2. SQLSTATE[42000]:Syntaxisfout of toegangsfout:1055 Expressie #3 van de SELECT-lijst staat niet in de GROUP BY-clausule en bevat niet-geaggregeerde

  3. FOUT:Verwijs naar de teller als het doel van een opdracht - PL/SQL

  4. IN-operator SQL