Consulta sobre este código
Publicado por achafio (37 intervenciones) el 30/01/2007 15:51:58
Estuve revisando un store procedure del mismo sql server, y hay cosas que no entiendo, por favor si podrian aclarar mis dudas.
*************************
Esta parte si es entendible, pero lo puse para que se puedan guiar del script que viene a continuación
*************************
SELECT @distribution_agent_id = id
FROM dbo.MSdistribution_agents
WHERE publisher_id = @publisher_id
AND publisher_db = @publisher_db
AND publication = @publication
AND subscriber_id = @subscriber_id
AND subscriber_db = @subscriber_db
*************************
Apartir de acá es mi duda
*************************
-- Get distribution agent summary
IF EXISTS <== Supongo que significa si existe algun valor del select anterior
(
SELECT *
FROM dbo.MSdistribution_history WITH (READPAST) <== Que significa READPAST
WHERE agent_id = @distribution_agent_id
)
BEGIN
SELECT TOP (1)
@distribution_status = runstatus,
@distribution_time = sys.fn_replformatdatetime(start_time),
@distribution_message = comments,
@distribution_duration = duration
FROM dbo.MSdistribution_history WITH (READPAST)
WHERE agent_id = @distribution_agent_id
ORDER BY time DESC, timestamp DESC
END
****************************
Por favor pueden explicarme el IF que es lo que está haciendo, que retorna o que valor toma el EXISTS que contiene ese select, y que significa WITH(READPAST) o porque colocan eso.
***************************
Gracias por las aclaraciones.
*************************
Esta parte si es entendible, pero lo puse para que se puedan guiar del script que viene a continuación
*************************
SELECT @distribution_agent_id = id
FROM dbo.MSdistribution_agents
WHERE publisher_id = @publisher_id
AND publisher_db = @publisher_db
AND publication = @publication
AND subscriber_id = @subscriber_id
AND subscriber_db = @subscriber_db
*************************
Apartir de acá es mi duda
*************************
-- Get distribution agent summary
IF EXISTS <== Supongo que significa si existe algun valor del select anterior
(
SELECT *
FROM dbo.MSdistribution_history WITH (READPAST) <== Que significa READPAST
WHERE agent_id = @distribution_agent_id
)
BEGIN
SELECT TOP (1)
@distribution_status = runstatus,
@distribution_time = sys.fn_replformatdatetime(start_time),
@distribution_message = comments,
@distribution_duration = duration
FROM dbo.MSdistribution_history WITH (READPAST)
WHERE agent_id = @distribution_agent_id
ORDER BY time DESC, timestamp DESC
END
****************************
Por favor pueden explicarme el IF que es lo que está haciendo, que retorna o que valor toma el EXISTS que contiene ese select, y que significa WITH(READPAST) o porque colocan eso.
***************************
Gracias por las aclaraciones.
Valora esta pregunta


0