¿Hay alguna compatibilidad con natural join s en las ediciones recientes de Microsoft SQL Server? ¿O hay una buena alternativa para hacer que SQL Server resuelva los predicados que deberían haber estado en las cláusulas ON
basadas en la integridad referencial?Unión natural en SQL Server
Respuesta
n, y gracias a las estrellas de la suerte
No puedo creer que te gustaría que el motor se adivina la unión para usted
Enlaces relacionados:
- SQL Server - lack of NATURAL JOIN/x JOIN y USING(field)
- is NATURAL JOIN any better than SELECT FROM WHERE in terms of performance ?
Editar, para explicar por qué
- la unión (si el uso o ON) es clara y explícita
- yo debería ser capaz de nombrar mis columnas para la entidad almacenada en la tabla, sin tener que preocuparse acerca de lo que una columna se llama en otra tabla, sin NATURAL JOIN efectos secundarios
No me gustaría verlo pronto. A Connect suggestion from 2006 tiene muy poca información que no sea:
Gracias por su comentario. Analizaremos su solicitud de uno de los próximos lanzamientos.
y sólo ha recibido ~ 30 upvotes
BTW, estoy de acuerdo con USING pero no con NATURAL JOIN en esa solicitud ... – gbn
@gbn - natural join, en sí mismo, no es una mala idea. No "adivina" ni infiere en función de claves externas. Simplemente coincide en todas las columnas con nombre idéntico en ambos lados de la unión. Si se está uniendo entre dos tablas que tienen columnas con nombre idéntico que representan cosas diferentes, en general veo eso como un esquema roto; Además, es una función opcional: no penalizará ni cambiará la interpretación de ningún código existente. –
Pensaba más en las columnas de tipo "Insertado por" e "Insertado en". O donde no prefijas una columna de Comentario con el nombre de la tabla para que tengas muchas columnas de Comentario en lugar de Tautological Thing.ThingComment y Stuff.StuffComment – gbn
MS SQL no permite conectar natural, ni se unen utilizando(). Debe escribir explícitamente todos los atributos utilizados en la unión.
Si cambia el datamodel
, debe cambiar todas las "combinaciones naturales" escritas a mano y asegurarse de que su condición de unión vuelva a estar bien.
- 1. Clasificación natural para SQL Server?
- 2. SQL Server: fecha máxima y unión interna
- 3. SQL Server - unión interna al actualizar
- 4. Cuándo utilizar SQL natural join en lugar de join .. on?
- 5. SQL en SQL Server
- 6. SQL unión condicional
- 7. SQL Server Linked Server Ejemplo de consulta
- 8. ¿Inner Join vs. Natural Join, speed-wise?
- 9. Unión de toda la geometría en una tabla de SQL Server como GeomUnion en Postgres
- 10. SQL Server para cada lazo
- 11. Inventario SQL Query sin UNIÓN?
- 12. UPSERT atómico en SQL Server 2005
- 13. SQL Server 2008 a SQL Server 2005
- 14. ¿La orden de unión importa en SQL?
- 15. Clasificación natural (humano alfanumérico) en Microsoft SQL 2005
- 16. ¿Cómo realizar una unión IZQUIERDA en SQL Server entre dos instrucciones SELECT?
- 17. SQL Server: combinar varias instrucciones SELECT con "CON" parte en una unión
- 18. Diferencia entre la unión de bucle anidado y la combinación de hash en SQL Server 2008
- 19. ¿Cómo limito una UNIÓN IZQUIERDA al primer resultado en SQL Server?
- 20. UNIX_TIMESTAMP en SQL Server
- 21. ¿Redondeo en SQL Server?
- 22. Drop table en Sql Server por Sql Server Management Studio
- 23. Linking Server en SQL Server 2008 R2
- 24. SQL Server Unir en el pedido
- 25. SQL Server
- 26. SQL: unión interna de dos tablas masivas
- 27. SQL Server Deadlock Fix: ¿Forzar orden de unión o volver a intentarlo automáticamente?
- 28. SQL Server-- tablas de unión y columnas SUM para cada fila distinta
- 29. DLL .NET para el lenguaje natural a SQL/SPARQL
- 30. Ejecutando SQL Server en EC2
Solo se trata de adivinar si la implementación se hace mal (nombres de columna). SQL Server tiene una forma precisa de definir referencias, por lo que es lógico que tenga toda la información que necesita para crear un predicado preciso. ¿O estoy equivocado? – grenade
@grenade: ver mi actualización por favor – gbn
Odio el punto 'gracias a la estrella de la suerte' ... pero No es la respuesta correcta ... – mrwaim