error ANSI_NULLS???

25/09/2006 - 18:59 por César Ag | Informe spam
tengo el siguiente procedimiento, pero al momento de ejecutarlo, me sale el
siguiente error:

Las consultas heterogéneas requieren que se establezcan las opciones
ANSI_NULLS y ANSI_WARNINGS de la conexión. Así se asegura una semántica de
consulta coherente. Active estas opciones y ejecute de nuevo la consulta.

El procedimiento es el siguiente:

CREATE PROCEDURE ValidaCodigo
@COD varchar(10), @Error char(255) output
AS
BEGIN

DECLARE @strSQL varchar(200)

SET @strSQL = 'SET ANSI_NULLS ON SET ANSI_WARNINGS ON SELECT * FROM
OPENQUERY(servidor_linkeado, '
SET @strSQL = @strSQL + CHAR(39)
SET @strSQL = @strSQL + 'Select * from Codigos_Validos '
SET @strSQL = @strSQL + ' Where Codigo= ''' + CHAR(39) + @COD + CHAR(39)
SET @strSQL = @strSQL + CHAR(39) +''')'
EXEC ( @strSQL)
IF @@RowCount=0
BEGIN
SET @Error='Error, el codigo no existe'
SELECT @Error
RETURN 0
END

SET @Error=''
SELECT @Error
RETURN 1
END
GO
 

Leer las respuestas

#1 Isaias
25/09/2006 - 22:19 | Informe spam
Cuando creas procedimientos que hacen referencia a otro servidor o a otra
base de datos, debes setear ANSI_NULLS y ANSI_WARNINGS en ON.

En tu analizador de consultas, antes del CREATE PROCEDURE, incluye estas 2
lineas:

SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
CREATE PROCEDURE..
Saludos
IIslas


"César Ag" wrote:

tengo el siguiente procedimiento, pero al momento de ejecutarlo, me sale el
siguiente error:

Las consultas heterogéneas requieren que se establezcan las opciones
ANSI_NULLS y ANSI_WARNINGS de la conexión. Así se asegura una semántica de
consulta coherente. Active estas opciones y ejecute de nuevo la consulta.

El procedimiento es el siguiente:

CREATE PROCEDURE ValidaCodigo
@COD varchar(10), @Error char(255) output
AS
BEGIN

DECLARE @strSQL varchar(200)

SET @strSQL = 'SET ANSI_NULLS ON SET ANSI_WARNINGS ON SELECT * FROM
OPENQUERY(servidor_linkeado, '
SET @strSQL = @strSQL + CHAR(39)
SET @strSQL = @strSQL + 'Select * from Codigos_Validos '
SET @strSQL = @strSQL + ' Where Codigo= ''' + CHAR(39) + @COD + CHAR(39)
SET @strSQL = @strSQL + CHAR(39) +''')'
EXEC ( @strSQL)
IF @@RowCount=0
BEGIN
SET @Error='Error, el codigo no existe'
SELECT @Error
RETURN 0
END

SET @Error=''
SELECT @Error
RETURN 1
END
GO



Preguntas similares