Creé una UDF que accede a la [INFORMATION_SCHEMA].[TABLES]
vista:
CREATE FUNCTION [dbo].[CountTables]
(
@name sysname
)
RETURNS INT
AS
BEGIN
RETURN
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name
);
END
En Visual Studio, el esquema y el nombre de la vista están marcados con una advertencia:
SQL71502: Función: [dbo]. [CountTables] tiene una referencia sin resolver al objeto [INFORMATION_SCHEMA]. [TABLES].
Todavía puedo publicar el proyecto de la base de datos sin ningún problema, y la UDF parece funcionar correctamente. IntelliSense rellena el nombre de la vista por mí, por lo que no parece tener ningún problema con ella.
También intenté cambiar la implementación para usar en sys.objects
lugar de esta vista, pero también recibí la misma advertencia para esta vista.
¿Cómo puedo resolver esta advertencia?
En nuestro proyecto, ya tenemos una referencia al maestro, pero tuvimos este problema. Aquí estaba el error que obtuvimos:
Para resolver el error de referencia, en el archivo sql de la tabla, haga clic con el botón derecho en las propiedades y verifique que BuildSettings esté configurado en Build.
Cambiarlo lo arregló.
fuente
lo que dijo Sam es la mejor manera de hacer esto.
Sin embargo, si tiene un escenario en el que necesita implementar el dacpac desde una máquina que no tiene esa referencia en esa ubicación específica, puede tener problemas. Otra forma es abrir su archivo .project y asegurarse de que la siguiente etiqueta tenga el valor de
false
para la configuración de compilación que está intentando ejecutar.De esta manera, no es necesario que agregue una referencia a su proyecto.
fuente