Las funciones valoradas en la tabla son un tipo de funciones en SQL Server que devuelve los datos como tablas. Al realizar uniones en SQL Server, puede unir filas de dos o más tablas de base de datos. Sin embargo, la capacidad de unir una tabla con una salida de una función valorada de tabla no es compatible a menos que use operadores de aplicaciones.
SQL Server admite dos operadores de aplicaciones:
La aplicación cruzada es muy similar, semánticamente, a una unión interna de SQL Server. Esto significa que recupera las filas de una función valorada de tabla y la de la tabla para unirse solo donde hay coincidencias entre las dos tablas.
Aplicación externa, se unirá a los registros de una función valorada en la tabla, y la tabla definida, independientemente de las filas coincidentes.
Para comprender mejor cómo usar operadores de aplicaciones cruzadas y exteriores en SQL Server, tomemos un enfoque práctico.
Comience creando una base de datos de prueba:
Crear base de datos ApplyDB;Cambiar a la base de datos Crear:
usar ApplyDB;A continuación, cree tablas e inserte datos de muestra como se muestra:
createTableusersEl script de consulta de ejemplo crea dos tablas: usuarios y publicaciones. La tabla de publicaciones contiene una columna user_id que contiene los valores de la tabla de los usuarios que permiten relaciones de uno a muchos en la base de datos.
Aplicar la cruz del servidor SQL
Intentemos una unión interna con una mesa valorada como:
CreateFunction getPostsByid (@id int)SQL Server devolverá un error como:
Para resolver esto, podemos usar la aplicación cruzada como:
seleccionar u.nombre de usuario, P.ID, P.post_name, p.pub_dateLa consulta anterior debe ejecutarse con éxito y devolver el resultado como:
Aplicar el exterior del servidor SQL
Podemos buscar las filas del físico y la función valorada de la tabla utilizando la aplicación externa como se muestra:
seleccionar u.nombre de usuario, P.ID, P.post_name, p.pub_dateEl conjunto de consultas resultante es como se muestra:
Conclusión
Este artículo cubre cómo trabajar con operadores de aplicaciones exteriores y de aplicaciones de SQL Server para unirse a una tabla física y una función valorada en la tabla.