Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Преминаване без курсор в SQL Server 2005

Можете да използвате SQL 2005 CTE, за да накарате SQL машината да го прави рекурсивно.

Изброяване на основните подходи е на http://blogs.msdn.com/anthonybloesch/archive/2006/02/15/Hierarchies-in-SQL-Server-2005.aspx

Celko също има книга за дървета в SQL, която обхваща всичко това до n-та степен.

Или можете да го принудите грубо, като изберете всяко ниво в променлива на локална таблица и след това зациклите, вмъквайки деца с избрано, докато вашият @@ROWCOUNT стане нула (т.е. не намирате повече деца). Ако нямате много данни, това е лесно за кодиране, но вие намекнахте, че търсите производителност, като казахте, че не искате курсор.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обърнете реда на думите в T-SQL

  2. Доктрина 2:Не може да се актуализира колоната DateTime на SQL Server 2008apm

  3. База данни + удостоверяване на Windows + потребителско име/парола?

  4. SQL Server:максималният брой редове в таблицата

  5. DataBinding:„System.Data.DataRowView“ не съдържа свойство с името