c1
---
1
2
3
... bueno a la hora de realizar la consulta deseo que en lugar de que me muestre 1, 2 o 3 me muestres "RUC", "DNI" , "CARNE DE EXTRANJERIA " ... bien entonces para este caso puedo hacer uso de una FUNCIÓN del SQL SERVER 2008 ,mandar el campo c1 y que me muestre el valor ,es algo sencillo lo sé ,que seguramente se puede realizar en la misma consulta empleando un WHEN u otro método pero para el ejemplo vamos a emplear una FUNCION ESCALAR, la sintaxis para crear este tipo de función es la siguiente :
CREATE FUNCTION <Scalar_Function_Name, sysname, FunctionName>
(
-- Add the parameters for the function here
<@Param1, sysname, @p1> <Data_Type_For_Param1, , int>
)
RETURNS <Function_Data_Type, ,int>
AS
BEGIN
-- Declare the return variable here
DECLARE <@ResultVar, sysname, @Result> <Function_Data_Type, ,int>
-- Add the T-SQL statements to compute the return value here
SELECT <@ResultVar, sysname, @Result> = <@Param1, sysname, @p1>
-- Return the result of the function
RETURN <@ResultVar, sysname, @Result>
END
Bien ahora que ya conocemos la sintaxis y hemos comentado lo que pretendemos realizar empleando la función, vayamos a la practica, una vez abierto el SQL Server Management Studio, vamos a la siguiente opción :1)
2)Hacemos Clic con el botón derecho en la opción seleccionada y seleccionamos la opción Nueva Funcion Escalar
3) Llego el momento de crear nuestra función, analicen el código
CREATE FUNCTION ufsGetTipodeDocumento
(@Id int)
RETURNS varchar(25)
AS
BEGIN
declare @strtd varchar(25)
if @Id=1
set @strtd='RUC'
if @Id=2
set @strtd='DNI'
if @Id=3
set @strtd='CARNE EXTRANJERIA'
RETURN @strtd
END
4)Una vez creada nuestra función ufsGetTipodeDocumento ahora vamos a hacer uso de ella
Sencillo no? ... bueno asi de sencillo es crear nuestras propias funciones en SQL SERVER 2008, en una proxima publicación vamos a seguir escribiendo acerca de las funciones porque realmente son muy utiles y te sacan de varios aprietos a la hora de desarrollar nuestros proyectos ... saludos
Excelente publicación le doy un 10
ResponderEliminarComo la puedo mandar ejecutar desde C#?? Osea como puedo ejecutar una funcion hecha en SQL Server 2008 y mandarla llamar atraves de Entity Framework del Visual Studio 2008??
ResponderEliminarya cree la funcion pero al momento de querer usarlo no reconoce dicha funcion, como puedo solucionarlo?
ResponderEliminar