SQL - sin cursor

   
Vista:

sin cursor

Publicado por Karla (1 intervención) el 14/09/2013 05:45:58
Hola, alguien sabe como puedo hacer lo mismo que el cursor, pero sin cursores.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
declare @DepartmentID int,
		@sql nvarchar(1000),
		@paramDefinition nvarchar(255),
		@paramValue char(3)
 
DECLARE Cursor1 CURSOR FOR
	select distinct DepartmentID
	from Department
 
OPEN Cursor1
FETCH NEXT FROM Cursor1
INTO @DepartmentID
 
WHILE @@FETCH_STATUS = 0
	BEGIN
 
		SET @sql = 'SELECT A.Title,A.Credits,B.Budget,B.StartDate, B.DepartmentID, B.name INTO ##TABLADeparment' + CAST(@DepartmentID AS VARCHAR(2))
				   + ' FROM Course A, Department B '
				   + 'WHERE A.DepartmentID = B.DepartmentID AND A.DepartmentID = CAST(' + CAST(@DepartmentID AS VARCHAR(2)) + ' AS INT)'
		EXEC sp_executesql @sql
		FETCH NEXT FROM Cursor1
		INTO @DepartmentID
	END
CLOSE Cursor1
DEALLOCATE Cursor1

Esto es lo que hace el cursor de arriba: crea "N" tablas de acuerdo a los campos de Department.DepartmentID
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias Islas Gonzalez

sin cursor

Publicado por Isaias Islas Gonzalez (690 intervenciones) el 19/09/2013 17:28:43
Para substituir CURSORES, tienes las tablas temporales o bien el uso de CTE's
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar