Ayuda Con query

31/10/2005 - 20:53 por Victor M | Informe spam
Hola
Necesito hacer un query que haga lo siguiente:
necesito hacer un udpate a un campo de una tabla(A) en este caso Llafac que
va a hacer igual al campo llaveu de otra tabla(B) siempre y cuando el campo
numfac de la tabla(A) sea igual al campo numfac de la tabla B
seria algo asi pero no me funciona
update A set A.llafac= B.llaveu
where A.numfac=B.numfac
Soy nuevo en SQL y les agradeceria mucho su ayuda
Saludos

Preguntas similare

Leer las respuestas

#6 Jose Luis
31/10/2005 - 21:53 | Informe spam
No deberias de utilizar cursores, el SQL Server solo los tiene por
compatibilidad con otros sistemas de Base de Datos, no es recomendable, tu
aplicativo en cuanto a rendimiento decaera mucho, a no ser que sena muy
pocos registros.

Saludos

"Maxi" escribió en el mensaje
news:%
Hola, ojo con los cursores:

http://www.configuracionesintegrale...p?articulo)5


Salu2
Maxi [MVP SQL SERVER]


"Victor M" escribió en el mensaje
news:
> Muchas Gracias pero ya lo habia hecho pero con un cursor que do de la
> siguiente manera
>
> Declare @llaveu char(10),
> @numfac char(10)
> DECLARE actualiza CURSOR FOR
> SELECT doc.llaveu,doc.numfac FROM cxchdo doc join cxccmo mov on
> doc.numfac=mov.numfac
> OPEN actualiza
> FETCH NEXT FROM actualiza INTO @llaveu,@numfac
> WHILE @@FETCH_STATUS = 0
> BEGIN
> update cxccmo set llafac=@llaveu where numfac=@numfac
> FETCH NEXT FROM actualiza INTO @llaveu,@numfac
> END
> CLOSE actualiza
> DEALLOCATE actualiza
> Saludos
> "Penta" wrote in message
> news:
>> Hola Jose Luis.
>> Solo por curiosidad, por que recomiendas la primera opcion ?
>> La verdad es que no suelo utilizar inner y generalmente mis querys son
>> como la segunda opcion que indicaste.
>>
>> Salu2.
>> Penta.
>>
>
>


Respuesta Responder a este mensaje
#7 Miguel Egea
31/10/2005 - 22:21 | Informe spam
aunque me da rabia no hay diferencias de rendimiento en una y otra lo que
si que es cierto es que la primera forma pertence al Ansi 92 (y sucesivos)
mientras que la anterior es del ansi 88 (igual me estoy colando en este
número) Lo que si que es cierto es que SQL Server dejará de soportar joins
externos con esa sintaxis (*=) por lo que la primera resulta mucho más
adecuada.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"

"Jose Luis" wrote in message
news:
Hola Penta,

El hecho de utilizar un inner join es mas que todo por utilizar los
indices
que puedas tener en tus tablas, es mucho mas efectivo asi como nativo del
SQL Server, el otro solo se tiene por compatibilidad del SQL Ansi.

Saludos


"Penta" escribió en el mensaje
news:
Hola Jose Luis.
Solo por curiosidad, por que recomiendas la primera opcion ?
La verdad es que no suelo utilizar inner y generalmente mis querys son
como la segunda opcion que indicaste.

Salu2.
Penta.





Respuesta Responder a este mensaje
#8 Maxi \(MVP SQL\)
31/10/2005 - 23:30 | Informe spam
Hola Miguel, lo que habi leido en su momento es que no existian diferencias
de rendimiento pero si podrian existir problemas con los datos obtenidos,
podrian ser incoherentes :-S


-
[MS-MVP SQL SERVER]

"Miguel Egea" escribió en el mensaje
news:
aunque me da rabia no hay diferencias de rendimiento en una y otra lo que
si que es cierto es que la primera forma pertence al Ansi 92 (y sucesivos)
mientras que la anterior es del ansi 88 (igual me estoy colando en este
número) Lo que si que es cierto es que SQL Server dejará de soportar joins
externos con esa sintaxis (*=) por lo que la primera resulta mucho más
adecuada.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced
education and solutions for the entire Microsoft database platform"

"Jose Luis" wrote in message
news:
Hola Penta,

El hecho de utilizar un inner join es mas que todo por utilizar los
indices
que puedas tener en tus tablas, es mucho mas efectivo asi como nativo del
SQL Server, el otro solo se tiene por compatibilidad del SQL Ansi.

Saludos


"Penta" escribió en el mensaje
news:
Hola Jose Luis.
Solo por curiosidad, por que recomiendas la primera opcion ?
La verdad es que no suelo utilizar inner y generalmente mis querys son
como la segunda opcion que indicaste.

Salu2.
Penta.









Respuesta Responder a este mensaje
#9 Eladio Rincón
01/11/2005 - 01:13 | Informe spam
Hola Maxi,

en SQL Server 2005, las consultas funcionará estableciendo nivel de
compatibilidad hacia la versión 2000: deberás establecerlo con el
procedimiento almacenado dbcmptlevel a nivel 80 o inferior (80 corresponde a
SQL Server 2000).
lo que si avisan es que cuando venga la siguiente versión... 2006, 2007,
..., ni siquieran con compatibilidad a una versión anterior funcionará...
:-)


CREATE TABLE dbo.t1
(id int, v char(1))
go
CREATE TABLE dbo.t2
(id int, v char(1))
go
insert into dbo.t1 select 1, 'a'
insert into dbo.t1 select 2, 'b'
insert into dbo.t1 select 3, 'c'
go
insert into dbo.t2 select 3, 'c'
insert into dbo.t2 select 4, 'd'
go

select * from
dbo.t1, dbo.t2
where t1.id *= t2.id
go
sp_dbcmptlevel 'Taller', '80' -- Taller = nombre de base de datos
reconfigure
go
select * from
dbo.t1, dbo.t2
where t1.id *= t2.id

1 a NULL NULL
2 b NULL NULL
3 c 3 c




Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"

"Maxi (MVP SQL)" wrote in message
news:
Hola Miguel, lo que habi leido en su momento es que no existian
diferencias de rendimiento pero si podrian existir problemas con los datos
obtenidos, podrian ser incoherentes :-S


-
[MS-MVP SQL SERVER]

"Miguel Egea" escribió en el mensaje
news:
aunque me da rabia no hay diferencias de rendimiento en una y otra lo
que si que es cierto es que la primera forma pertence al Ansi 92 (y
sucesivos) mientras que la anterior es del ansi 88 (igual me estoy
colando en este número) Lo que si que es cierto es que SQL Server dejará
de soportar joins externos con esa sintaxis (*=) por lo que la primera
resulta mucho más adecuada.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced
education and solutions for the entire Microsoft database platform"

"Jose Luis" wrote in message
news:
Hola Penta,

El hecho de utilizar un inner join es mas que todo por utilizar los
indices
que puedas tener en tus tablas, es mucho mas efectivo asi como nativo
del
SQL Server, el otro solo se tiene por compatibilidad del SQL Ansi.

Saludos


"Penta" escribió en el mensaje
news:
Hola Jose Luis.
Solo por curiosidad, por que recomiendas la primera opcion ?
La verdad es que no suelo utilizar inner y generalmente mis querys son
como la segunda opcion que indicaste.

Salu2.
Penta.













Respuesta Responder a este mensaje
#10 Eladio Rincón
01/11/2005 - 01:23 | Informe spam
Perdón,
olvidé comentar que los resultados del script eran con SQL Server 2005.

Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"
"Eladio Rincón" wrote in message
news:
Hola Maxi,

en SQL Server 2005, las consultas funcionará estableciendo nivel de
compatibilidad hacia la versión 2000: deberás establecerlo con el
procedimiento almacenado dbcmptlevel a nivel 80 o inferior (80 corresponde
a SQL Server 2000).
lo que si avisan es que cuando venga la siguiente versión... 2006, 2007,
..., ni siquieran con compatibilidad a una versión anterior funcionará...
:-)


CREATE TABLE dbo.t1
(id int, v char(1))
go
CREATE TABLE dbo.t2
(id int, v char(1))
go
insert into dbo.t1 select 1, 'a'
insert into dbo.t1 select 2, 'b'
insert into dbo.t1 select 3, 'c'
go
insert into dbo.t2 select 3, 'c'
insert into dbo.t2 select 4, 'd'
go

select * from
dbo.t1, dbo.t2
where t1.id *= t2.id
go
sp_dbcmptlevel 'Taller', '80' -- Taller = nombre de base de datos
reconfigure
go
select * from
dbo.t1, dbo.t2
where t1.id *= t2.id

1 a NULL NULL
2 b NULL NULL
3 c 3 c




Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced
education and solutions for the entire Microsoft database platform"

"Maxi (MVP SQL)" wrote in message
news:
Hola Miguel, lo que habi leido en su momento es que no existian
diferencias de rendimiento pero si podrian existir problemas con los
datos obtenidos, podrian ser incoherentes :-S


-
[MS-MVP SQL SERVER]

"Miguel Egea" escribió en el mensaje
news:
aunque me da rabia no hay diferencias de rendimiento en una y otra lo
que si que es cierto es que la primera forma pertence al Ansi 92 (y
sucesivos) mientras que la anterior es del ansi 88 (igual me estoy
colando en este número) Lo que si que es cierto es que SQL Server dejará
de soportar joins externos con esa sintaxis (*=) por lo que la primera
resulta mucho más adecuada.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced
education and solutions for the entire Microsoft database platform"

"Jose Luis" wrote in message
news:
Hola Penta,

El hecho de utilizar un inner join es mas que todo por utilizar los
indices
que puedas tener en tus tablas, es mucho mas efectivo asi como nativo
del
SQL Server, el otro solo se tiene por compatibilidad del SQL Ansi.

Saludos


"Penta" escribió en el mensaje
news:
Hola Jose Luis.
Solo por curiosidad, por que recomiendas la primera opcion ?
La verdad es que no suelo utilizar inner y generalmente mis querys son
como la segunda opcion que indicaste.

Salu2.
Penta.

















Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida