referencia no resuelta al objeto [ESQUEMA DE INFORMACIÓN].[TABLA]


He creado un UDF que accede a la vista [INFORMATION_SCHEMA].[TABLES]:

CREATE FUNCTION [dbo].[CountTables]
(
    @name sysname
)
RETURNS INT
AS
BEGIN
    RETURN
    (
        SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name
    );
END

Dentro de Visual Studio, el esquema y el nombre de la vista están marcados con una advertencia:

SQL71502: Función: [dbo].[CountTables] tiene una referencia no resuelta al objeto [INFORMATION_SCHEMA].[TABLA].

Todavía puedo publicar el proyecto de base de datos sin ningún problema, y el UDF parece funcionar correctamente. IntelliSense rellena el nombre de la vista para mí, por lo que no parece tener un problema con eso.

También intenté cambiar la implementación para usar sys.objects en lugar de esta vista, pero también se me dio la misma advertencia para esta vista.

¿Cómo puedo resolver esta advertencia?

Author: abatishchev, 2013-08-07

3 answers

Agregue una referencia de base de datos a master:

  1. En el proyecto, haga clic con el botón derecho en Referencias.
  2. Seleccione Agregar referencia de base de datos....
  3. Seleccione Base de datos del sistema .
  4. Asegúrese de que master está seleccionado.
  5. Presione OK.

Tenga en cuenta que puede tomar un tiempo para que VS se actualice.

 128
Author: Sam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-07 06:59:33

Lo que Sam dijo es la mejor manera de hacer esto.
Sin embargo, si tiene un escenario en el que necesita implementar dacpac desde una máquina que no tiene esa referencia en esa ubicación específica, puede tener problemas. Otra forma es abrir tu .y asegúrese de que la siguiente etiqueta tenga el valor de false para la configuración de compilación que está intentando ejecutar.

<TreatTSqlWarningsAsErrors>false</TreatTSqlWarningsAsErrors>

De esta manera no necesitas agregar una referencia a tu proyecto.

 2
Author: tecfield,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-27 20:05:29

En nuestro proyecto, ya tenemos una referencia a master, pero tuvimos este problema. Aquí estaba el error que obtuvimos:

SQL71502: Procedure: [Schema].[StoredProc1] has an unresolved reference to object [Schema].[Table1].[Property1].

Para resolver el error de referencia, en el archivo sql de la tabla, haga clic con el botón derecho en propiedades y verifique que las BuildSettings estén configuradas para Construir.

Cambiándolo construir lo arregló.

 2
Author: Russell D,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-27 21:35:43