sql >> Database >  >> RDS >> Sqlserver

Opgeslagen procedure, tabelnaam doorgeven als parameter

Dynamische SQL is de enige manier om dit te doen, maar ik zou de architectuur van uw applicatie heroverwegen als dit dit vereist. SQL is niet erg goed in "gegeneraliseerde" code. Het werkt het beste als het is ontworpen en gecodeerd om individuele taken uit te voeren.

Selecteren uit TabelA is niet hetzelfde als selecteren uit TabelB, zelfs als de select-statements er hetzelfde uitzien. Er kunnen verschillende indexen, verschillende tabelgroottes, gegevensdistributie, enz. zijn.

U kunt uw individuele opgeslagen procedures genereren, wat een gebruikelijke benadering is. Zorg voor een codegenerator die de verschillende geselecteerde opgeslagen procedures maakt voor de tabellen die u nodig hebt. Elke tabel zou zijn eigen SP('s) hebben, die je dan zou kunnen linken naar je applicatie.

Ik heb dit soort generatoren in T-SQL geschreven, maar je zou het gemakkelijk kunnen doen met de meeste programmeertalen. Het zijn vrij eenvoudige dingen.

Om nog iets toe te voegen, aangezien Scott E ORM's ter sprake bracht... je zou deze opgeslagen procedures ook moeten kunnen gebruiken met de meest geavanceerde ORM's.



  1. Hoe te updaten vanuit SELECT in SQL Server

  2. Postgres groeperen op zoekopdracht

  3. Rijen verwijderen uit meerdere tabellen in MySQL

  4. Door komma's gescheiden tekenreeks splitsen en in een tabel invoegen (int)