¿Cómo puedo declarar una variable en una función con valores de tabla?Declarar la variable en la función de valores de tabla
Respuesta
Hay dos tipos de funciones con valores de tabla. Una que es solo una declaración seleccionada y otra que puede tener más filas que solo una declaración seleccionada.
Esto no se puede tener una variable:
create function Func() returns table
as
return
select 10 as ColName
Tienes que hacer esta forma:
create function Func()
returns @T table(ColName int)
as
begin
declare @Var int
set @Var = 10
insert into @T(ColName) values (@Var)
return
end
Gracias, eso es muy útil –
El primer ejemplo se conoce como una "Función de tabla con valores en línea" que tiene beneficios de rendimiento en comparación con una función de valores de tabla multi-declaración, es decir, el servidor de base de datos * puede * recomponer * la consulta con la ITVF * inlined * en la consulta principal, convirtiéndose básicamente en un 'VIEW' parametrizado, mientras que un MSTVF se comporta más como un procedimiento almacenado opaco (aunque con sus propias ventajas en comparación con sprocs). Las funciones en línea deben preferirse a MSTVF. Si necesita calcular y almacenar valores intermedios (como el resultado de una expresión de función escalar compleja), utilice una subconsulta. – Dai
Probablemente también valga la pena mencionar que si el resultado de lo que está utilizando para poblar la variable que desea establecer es de alguna manera generalizable, entonces podría considerar escribir una función separada para generarlo. Esto le permitiría usar la ITVF descrita por @Dai anteriormente, con todos los beneficios de la misma, al mismo tiempo que inserta un valor generado dinámicamente en su función. Acabo de escribir una función con la ayuda de la solución anterior (¡gracias @MikaelEriksson!) Que transmite uno de sus parámetros a una función auxiliar para ahorrarme el uso del formulario MSTVF. – naughtilus
- 1. declarar variable en una función sql
- 2. ¿Seleccionar valores de la tabla de Oracle Variable/Array?
- 3. debe declarar la variable escalar
- 4. Mejores prácticas de Javascript, ¿por qué usar la coma para declarar la función de cadena/variable?
- 5. Declarar la variable enum en Java bean
- 6. Cómo reparar el error "Debe declarar la variable escalar" al hacer referencia a la variable de la tabla?
- 7. ¿Cómo declarar una variable dentro de una función de esquema?
- 8. MPMoviePlayerController declarar (primer uso en la función)
- 9. ¿Variable de Javascript fuera de la función?
- 10. MySql: eliminar filas de la tabla en función de los valores duplicados de la columna?
- 11. declarar la variable fuera del bucle foreach
- 12. ASP.NET C# Debe declarar la variable escalar
- 13. ¿Por qué declarar una variable o función estática en C?
- 14. La importancia de declarar una variable como no firmada
- 15. Declare una variable de tabla basada en la instrucción Select
- 16. ¿Podemos declarar la variable global en el archivo QML?
- 17. Asignar a la variable de la función madre: "La variable local referenciado antes de la asignación"
- 18. variable local de Javascript declarar
- 19. nombre de la tabla como variable de
- 20. Actualización de la tabla con valores de otra tabla
- 21. ¿Cuál es la mejor manera de declarar una variable global?
- 22. de instrucciones múltiples valores de tabla Función vs Inline Tabla función de valor
- 23. Cómo SELECCIONAR * EN [tabla tmp] sin declarar tabla?
- 24. Crear variable de tabla en MySQL
- 25. Alcance de la variable de tabla dentro del cursor SQL
- 26. valores múltiples en la variable mysql
- 27. C++ Variable declarable en el cuerpo de la función, pero no miembro de la clase?
- 28. ¿Declarar una función dentro de una función?
- 29. Declarar los parámetros de la función después del nombre de la función
- 30. PHP: Matriz a valores de parámetros de función variable
en línea o de múltiples instrucciones? ¿Me gusta * MSDN * los describe? – gbn
@YogeshBhadauirya El problema con la ridícula respuesta de "utilizar un motor de búsqueda" es que * este * es donde apunta el motor de búsqueda. Tipo de una situación de recursión infinita. Lo mejor es eliminar la página o simplemente responder la pregunta. – Volvox
Esta pregunta merece más amor: ser reabierto y aceptada la siguiente respuesta. En realidad * es * una verdadera pregunta. – Askolein