Select top 1

12/10/2005 - 05:18 por Aventurero | Informe spam
Tengo SQL Server 2000 y hasta ahora me habia funcionado

Select top 1 identif from clientes where identif = 789

Pero ahora genera un error:

Sintaxis incorrecta acerca de '1'

Esto lo estoy haciendo desde una aplicación ASP.NET y he probado desde el
Analizador de Consultas, dando el mismo error.
Me pueden ayudar para sabe si se desconfiguró el SQL.

Gracias

Atentamente,


Aventurero

Preguntas similare

Leer las respuestas

#1 Harold Crow
12/10/2005 - 05:25 | Informe spam
ese error me lo da cuando hago este script

Select top '1' identif from clientes where identif = 789

el numero 1 lo eliges dinamicamente?? o tu lo pones fijo?

pk intente e intente, y la unica forma en que me da ese error es poniendo el
1 con comillas simples '1'

"Aventurero" escribió en el mensaje
news:
Tengo SQL Server 2000 y hasta ahora me habia funcionado

Select top 1 identif from clientes where identif = 789

Pero ahora genera un error:

Sintaxis incorrecta acerca de '1'

Esto lo estoy haciendo desde una aplicación ASP.NET y he probado desde el
Analizador de Consultas, dando el mismo error.
Me pueden ayudar para sabe si se desconfiguró el SQL.

Gracias

Atentamente,


Aventurero


Respuesta Responder a este mensaje
#2 Aventurero
12/10/2005 - 05:44 | Informe spam
Gracias Harold.

En el Analizador de Consultas lo escribo así y en el SP en donde siempre ha
funcionado.

Select top 1 identif from clientes where identif = @identif

En el SP @identif es un parámetro que llega.

Insisto, siempre me ha funcionado hasta este proceso lo tengo en producción
en una empresa. Pero no se porqué de un momento a otro no funciona.
Respuesta Responder a este mensaje
#3 Harold Crow
12/10/2005 - 05:51 | Informe spam
pk no pones la porcion del SP para verlo?


"Aventurero" escribió en el mensaje
news:eb%
Gracias Harold.

En el Analizador de Consultas lo escribo así y en el SP en donde siempre
ha
funcionado.

Select top 1 identif from clientes where identif = @identif

En el SP @identif es un parámetro que llega.

Insisto, siempre me ha funcionado hasta este proceso lo tengo en
producción
en una empresa. Pero no se porqué de un momento a otro no funciona.


Respuesta Responder a este mensaje
#4 Aventurero
12/10/2005 - 06:05 | Informe spam
Claro, esto es una parte:

CREATE PROCEDURE dbo.ActInsertaClientes
(
@cedula bigint,
@digito_nit int = null,
@sexo int
)
AS
if exists(select top 1 cedula from clientes where cedula = @cedula)
begin
UPDATE Itclientes
SET sexo = @sexo, digito_nit = @digito_nit
WHERE (cedula = @cedula)
end
else
begin
INSERT INTO Itclientes
(cedula, sexo, digito_nit)
VALUES (@cedula, @sexo, @digito_nit)
end
Respuesta Responder a este mensaje
#5 Harold Crow
12/10/2005 - 06:14 | Informe spam
y para que usas el select top 1??
si con solo usar
if exists(select * from clientes where cedula=@cedula)
se te soluciona??
hace lo mismo, no veo el porque del TOP 1

"Aventurero" escribió en el mensaje
news:%23%
Claro, esto es una parte:

CREATE PROCEDURE dbo.ActInsertaClientes
(
@cedula bigint,
@digito_nit int = null,
@sexo int
)
AS
if exists(select top 1 cedula from clientes where cedula = @cedula)
begin
UPDATE Itclientes
SET sexo = @sexo, digito_nit = @digito_nit
WHERE (cedula = @cedula)
end
else
begin
INSERT INTO Itclientes
(cedula, sexo, digito_nit)
VALUES (@cedula, @sexo, @digito_nit)
end


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