lunes, 5 de diciembre de 2011

El Tab de Startup Parameters en SQL Server 2012

Aplica a: SQL Server 2012, SQL Server Denali.

SQL Server 2012 trae una nueva forma de configurar las opciones de inicio de servicio de SQL Server (el motor de base de datos específicamente). Cuando abra SQL Server Configuration Manager, haga un clic derecho en el servicio SQL Server, seleccione Properties (Propiedades) y encontrará el nuevo tab de Startup Parameters.

Para demostrar cómo este nuevo tab hace más fácil usar opciones de inicio de servicio de SQL Server, mostremos cómo iniciar una instancia de SQL Server 2012 en modo de usuario único.

1. Abra SQL Server Configuration Manager y en el panel izquierdo haga clic en "Services".
2. En el panel derecho, haga un click derecho en el servicio SQL Server, y luego haga clic en Properties (Propiedades).





3. Haga un clic en el tab de Startup Parameters e introduzca "-m" en el campo o cuadro "Specify a startup parameter:", haga clic en el botón de "Add", y luego haga clic en el botón de "OK".





4. Un mensaje de advertencia puede aparecer especificando que es necesario reiniciar el servicio para que los cambios tengan efecto, lo cual significa desconexión de usuarios. Luego, haga clic en OK.




5. Se recomienda que pare el servicio de SQL Agent para evitar que haga uso de la única conexión disponible al motor de base de datos.





Para retornar el motor de base de datos a modo multiusuario, diríjase al tab de Startup Parameters, haga clic en el parámetro "-m", luego haga clic en el botón de "Remove". Finalmente, haga clic en el botón de "OK".



 

jueves, 1 de diciembre de 2011

14 Nuevas Funciones T-SQL en SQL Server 2012

Aplica a: SQL Server 2012.

SQL Server 2012 trae 14 nuevas funciones T-SQL y mejora otra existente..


Funciones de conversión.


Función TRY_CONVERT. Retorna un valor convertido a un tipo de datos especificado, si la conversión es exitosa. En caso contrario retorna null.









Función TRY_PARSE. Retorna el resultado de una expresión, convertida al tipo de datos solicitado, o nulo si la conversión falla.

Ejemplo:

SELECT CASE WHEN TRY_PARSE('Morillo' AS decimal) IS NULL
THEN 'True'
ELSE 'False'
END
AS Result

Resultado:

True

(1 row(s) affected)

Ejemplo:

SELECT TRY_PARSE('1234.5' AS decimal(5,1)) AS Result

Resultado:

Result
---------------------------------------
1234.5

(1 row(s) affected)


Función PARSE. Retorna el resultado de una expresión, convertida al tipo de datos solicitado. Sintaxis: PARSE (string_value AS data_type [USING culture])

Ejemplo:

SELECT PARSE('Monday, 13 december 2010' AS datetime2) AS Resultado

Resultado:

Resultado
----------------------
2010-12-13 00:00:00.00

(1 row(s) affected)


Funciones de Fecha y Tiempo.


Función EOMONTH. Esta función retorna el último día del mes correspondiente a la fecha pasada como parámetro.

Ejemplo:

SELECT EOMONTH('2/2/2011')

Resultado:

----------------------
2011-02-28 00:00:00.00

(1 row(s) affected)



Función TIMEFROMPARTS. Retorna un valor de tipo "time" para el tiempo pasado como parámetro, y con la precisión especificada. Sintaxis: TIMEFROMPARTS(hora, minutos, segundos, fracciones, precisión)

Ejemplo:

DECLARE @time time
SET @time = TIMEFROMPARTS(23, 59, 59, 0, 0)
SELECT @time

Resultado:


----------------
23:59:59.0000000

(1 row(s) affected)


Función SMALLDATETIMEFROMPARTS. Retorna un valor de tipo "smalldatetime" para la fecha y hora especificada. Sintaxis: SMALLDATETIMEFROMPARTS (año, mes, día, hora, minutos)

Ejemplo:

SELECT SMALLDATETIMEFROMPARTS(2011, 10, 24, 16, 35)

Resultado:


-----------------------
2011-10-24 16:35:00

(1 row(s) affected)



Función DATEFROMPARTS. Retorna un valor de tipo "date" para el año, mes y día especificados. Sintaxis: DATEFROMPARTS (año, mes, día)


Ejemplo:

SELECT DATEFROMPARTS(2011, 10, 24)

Resultado:


----------
2011-10-24

(1 row(s) affected)



Función DATETIMEFROMPARTS. Retorna un valor de tipo "datetime" para la fecha y hora especificadas. Sintaxis: DATETIMEFROMPARTS (año, mes, día, hora, minutos, segundos, milisegundos)

Ejemplo:

SELECT DATETIMEFROMPARTS (2011, 10, 24, 16, 45, 43, 22)

Resultado:


-----------------------
2011-10-24 16:45:43.023

(1 row(s) affected)



Función DATETIME2FROMPARTS. Retorna un valor de tipo "datetime2" para la fecha y hora especificadas, y con la precisión especificada. Sintaxis: DATETIME2FROMPARTS (año, mes, día, hora, minutos, segundos, fracciones, precisión)

Ejemplo:

SELECT DATETIME2FROMPARTS(2011, 10, 24, 16, 45, 43, 22, 3) -- 3=Milisegundos
-- 7=Nanosegundos

Resultado:


----------------------
2011-10-24 16:45:43.02

(1 row(s) affected)


Función DATETIMEOFFSETFROMPARTS. Retorna un valor de tipo "datetimeoffset" para la fecha y hora especificadas, y con la precisión especificada. Sintaxis: DATETIMEOFFSETFROMPARTS (año, mes, día, minutos, segundos, fracciones, hora_offset, minutos_offset, precisión).

Ejemplo:

SELECT DATETIMEOFFSETFROMPARTS(2011, 10, 24, 16, 45, 43, 0, 12, 0, 3)

Resultado:


----------------------------------
2011-10-24 16:45:43.000 +12:00

(1 row(s) affected)



Funciones Lógicas.


Función CHOOSE. Retorna el elemento de una lista de valores que se encuentra en el índice especificado. Sintaxis: CHOOSE (índice, val1, val2[, val_n]).

Ejemplo:

SELECT CHOOSE( 1, 2.30, 2.90, 4.10) as 'Discount Price'

Resultado:

Discount Price
---------------------------------------
2.30

(1 row(s) affected)



Función IIF. Retorna uno de dos valores, dependiendo de si la expresión booleana se evalúa como verdadero o como falso. Sintaxis: IIF (expresión booleana, valor verdadero, valor falso).

Ejemplo:

DECLARE @value1 int=1
DECLARE @value2 int=5
SELECT IIF(@value1 > @value2, 'True', 'False').

Resultado:


-----
False

(1 row(s) affected)


Funciones Matemáticas.


Función LOG. Retorna el logaritmo natural de la expresión flotante especificada. Sintaxis:
LOG (expresión flotante[, base]).

Por omisión retorna el logaritmo natural, con base e, donde e=2.718281828

Ejemplo:

SELECT LOG(10)

Resultado:

----------------------
2.30258509299405

(1 row(s) affected)

Ejemplo:

SELECT LOG(10,10)

Resultado:

----------------------
1

(1 row(s) affected)



Funciones de cadenas de caracteres.


Función CONCAT. Retorna una cadena de caracteres que es resultado de concatenar dos o más valores.

Ejemplos:

SELECT 'Alberto' + ', ' + 'Morillo'
SELECT CONCAT('Alberto', ' ', 'Morillo', ' ', 'Rodriguez')

Resultados:

----------------
Alberto, Morillo

(1 row(s) affected)


-------------------------
Alberto Morillo Rodriguez

(1 row(s) affected)



Función FORMAT. Retorna un valor formateado con el formato especificado y cultura, si se especifica. Sintaxis: FORMAT (valor, formato[, cultura]).

DECLARE @d DATETIME = '10/24/2011';
--SELECT FORMAT (@d, 'd', 'es-es') AS Result; -- Spanish - Spain
--SELECT FORMAT (@d, 'd', 'es-DO') AS Result; -- Spanish - Dominican Republic
--SELECT FORMAT (@d, 'd', 'af') AS Result; -- Afrikaans
SELECT FORMAT (@d, 'd', 'hy') AS Result; -- Armenian

Dónde se encuentra la lista de "culturas"?

http://msdn.microsoft.com/es-es/library/system.globalization.cultureinfo(VS.80).aspx

SELECT FORMAT(47.127, '0.00') as Price
SELECT FORMAT(47.127, '$0.00', 'es-DO') as Price