SQL Server - Duda con sp_executesql

 
Vista:

Duda con sp_executesql

Publicado por anonimo (53 intervenciones) el 08/02/2008 17:48:04
Buenos dias foristas
he aqui mi duda
he leido q una de las ventaja de sp_executesql es "guarda " el plan d consultas y permite usarla en las siguientes consultas
pero
si las condiciones en el where aumentan
¿esto obligaria al SQL a crear un nuevo plan de ejecucion?

DECLARE @sql1 nvarchar(4000),
@sql2 nvarchar(4000),
@state char(2)
SELECT @state = 'CA'
SELECT @sql1 = N'SELECT COUNT(*)'
SELECT @sql2 = N'FROM authors WHERE state = @state'
EXEC('EXEC sp_executesql N''' + @sql1 + @sql2 + ''',
N''@state char(2)'',
@state = ''' + @state + '''')

-----------------------
DECLARE @sql1 nvarchar(4000),
@sql2 nvarchar(4000),
@sql3_mas_where_opcional nvarchar(4000),

@state char(2)
SELECT @state = 'CA'
SELECT @sql1 = N'SELECT COUNT(*)'
SELECT @sql2 = N'FROM authors WHERE state = @state' + sql3_mas_where_opcional
EXEC('EXEC sp_executesql N''' + @sql1 + @sql2 + ''',
N''@state char(2)'',
@state = ''' + @state + '''' [Nota_Aqui])

[Nota_Aqui] == aqui aumentaria los demas parametros q va a usar el sp
aveces se usarian a veces no , dependeria de lo q diga el @sql3_mas_where_opcional

Saludos
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

RE:Duda con sp_executesql

Publicado por Isaias (3308 intervenciones) el 08/02/2008 18:58:28
La verdadera diferencia estriba en que el EXEC (del cual, haces un mal uso), ya no sera soportado para versiones superiores.

Esta linea deberia verse mas o menos asi:

EXEC sp_executesql N''' + @sql1 + @sql2 + ''',
N''@state char(2)'',
@state = ''' + @state + '''' [Nota_Aqui]

Saludos.
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