Saltar al contenido

Uno bien fácil y corto que llega el finde.

Ya lo vimos con el Management Studio. Nos daba la posibilidad de plantillas para completar o mejorar nuestro código. Tambíen nos servía para recordar ese comando que utilizamos poco.

Vamos a ellos.

Lo primero nos situamos la ventana de consulta y empezamos a escribir sql y como se ve en pantalla nos irá poniendo el resto.

Una vez que encontramos el comando damos click y .....

Bien fácil. Yo lo estoy utilizando mucho. Anqu SQl Operations tiene pco siempre podemos utilizar los de SSMS.

Próximos artículos ... extnsiones y terminar el CRUD.

En este primer artículo vamos a crear la Base de Datos y Tabla.

En primer lugar vamos a crear la carpeta donde van a estar todos los script y su base de datos correspondiente. Yo lo voy a meter todo en c:

A continuación dams a Nuevo/Nuevo Archivo y se nos abrirá la parte del código.

Vamos con el Create Database..

Ahora toca grabar.

Y gracias al artículo que puse en este blog:

http://www.mundosql.es/2017/03/05/para-montar-bases-de-datos-de-ejemplo-en-sql-server/

la tabla.

Hacemos un copy/paste

Ejecutamos y después hacemos un select *.

Esta tabla la utilizaremos para el artículo de Dynmic Data Masking(DDM).

Espero que os guste.

 

Ya lo hicimos una vez ....

http://www.mundosql.es/2016/05/16/monitorizando-nuestros-disco-duros-desde-sqlserver/

Pero me gusta más esta:

--Ver disco duros
--Juan Carlos Gilaranz Benito
-- www.mundosql.es

SELECT DISTINCT
volume_mount_point [Disco],
file_system_type [Tipo],
logical_volume_name as [Nombre],
CONVERT(DECIMAL(18,2),total_bytes/1073741824.0) AS [Total GB], ---1GB = 1073741824 bytes
CONVERT(DECIMAL(18,2),available_bytes/1073741824.0) AS [Libre GB],
CAST(CAST(available_bytes AS FLOAT)/ CAST(total_bytes AS FLOAT) AS DECIMAL(18,2)) * 100 AS [Libre %]
FROM sys.master_files
CROSS APPLY sys.dm_os_volume_stats(database_id, file_id)

Para aaber mas de DMV

http://www.mundosql.es/2015/06/16/dynamic-management-views-en-sqlserver/

y

http://www.mundosql.es/2016/02/29/listar-todas-las-funciones-y-vistas-de-administracion-dinamica-dmv-de-sqlserver/

que iremos viendo poco a poco

Ya hemos visto lo que es:

http://www.mundosql.es/2018/01/03/nivel-de-compatibilidad-en-sqlserver/

Ahora lo vamos a cambar. Pero primero vamos a ver donde lo podemos ver en el SSMS.

A tener en cuenta que:

  • SQL Server 2017 permite 140, 130, 120, 110, 100
  • SQL Azure 140, 130, 120, 110, 100
  • SQL Server 2016  130, 120, 110, 100
  • SQL Server 2014 120, 110, 100
  • SQL Server 2012 110, 100, 90
  • SQL Server 2008/R2  100, 90, 80

Nivel de Compatibilidad y cambiamos.

Damos Ok.

Vemos que se ha cambiado. Ahora vamos a realizarlo con T-SQL.

Y lo vemos si ha cambiado.

Seencillo ??? Si .... Al turrón

Cada base de datos que creamos con SQL Server tiene una configuración que denominamos  nivel de compatibilidad que es nada más que cómo se interpretan los comandos de T-SQL o como se comportan las bases de datos.

No es raro tener bases de datos con un nivel de compatibilidad que no coincida con la versión de SQL Server en la que se ejecutan.

Podemos verlo de forma muy rápida con T-SQL.

/*
Ver Nivel Compatibilidad
Juan Carlos Gilaranz Benito
www-mundosql.es
*/
-- 80 = SQL Server 2000
-- 90 = SQL Server 2005
--100 = SQL Server 2008/R2
--110 = SQL Server 2012
--120 = SQL Server 2014
--130 = SQL Server 2016

select name, compatibility_level
from sys.databases
WHERE name NOT IN ('master','model','msdb','tempdb')

Hay que tenerlo muy en cuenta en temas de migraciones y actualizaciones de Bases de Datos.

Ya vimos este tema hace tiempo.

Ahora con una función nueva de la versión 2016.

Primero tenemos que utilizar sys.time_zone_info para ver todas las zonas horarias.

/*
VER ZONAS HORARIAS
Juan Carlos Gilaranz Benito
www.mundosql.es
*/

select * from sys.time_zone_info
ORDER BY current_utc_offset

Devuelve información sobre las  zonas horarias  instaladas en la computadora.

Y ahora vemos como lo hacemos con un simple select.

/*
VER QUE HORA ES EN .....
Juan Carlos Gilaranz Benito
www.mundosql.es
*/

select GETDATE() AT TIME ZONE 'W. Europe Standard Time' Hora_España, GETDATE() AT TIME ZONE 'Argentina Standard Time' Hora_Argentina

Ya no podéis poner como excusa que no se la hora de mis charlas  jajajajajaja

 

Hola de nuevo, ya se que no me prodigo mucho últimamente por aquí.

Estoy muy liado.

Buscando alguna función, comando, .....  en SQL Server para insertar un caracter en una cadena, me encontre este comando.

Vamos con el ejemplo:

/*
METER 1 CARACTER EN UNA CADENA
Juan Carlos Gilaranz Benito
www.mundosql.es
*/

DECLARE @fecha VARCHAR(8)
set @fecha = '17112017'
SELECT CONVERT(varchar,CONVERT(DATE,STUFF(STUFF(@fecha,3,0, '-'), 6, 0, '-')),103)

Que uso le podemos dar, adeas de este.

Y aquí el pantallazo respectivo

Como anticipo a:

http://www.mundosql.es/2017/10/20/charla-controla-lo-que-hacen-con-tus-bases-de-datos-mediante-triggers/

Os avanzo parte del script que voy utilizar:

Cuando de la charla le tendreis mas completo

 

 

Puede ocurrir que haciendo un SELECT *  u con los campos se te desmadre.

y tengas que ir con las barras bajando.

Lo podemos hacer mejor, paginando.

Vemos que esta del registro  1 al 15, ahora del 15 al 30 por ejemplo

Una función super-util.

Se puede mezclar con otras opciones y ..... hacer maravillas 😉

Como buen DBA tenemos que estar al loro de esto.

Cuando gestionamos una gran cantidad de servidores SQL y no queremos desperdiciar el espacio libre, es decir, queremos controlar el espacio del disco del servidor SQL Server para que no nos den susto podemos hacerlo de varias formas.

Para gustos colores ....

 

Podemos crear una carpeta en  alguna ubicación de nuestro ordenador. Por ejemplo para tener los backup de cada día.

Podemos hacerlo ....

Nos da un error, pero podemos habilitar o que funcione con ....

Y ahora volvemos a ejecutar el script que nos dio error y ...

Y en nuestro ordenador ..

Podemos darle mucha utilidad, ya veremos otras

De nuevo, a la carga con temas básicos pero potentes de SQL Server. Además es el artículo 900.

Al turrónnnnnnn

Vamos a ver como se calcula la diferencia entre 2 fechas

Empezando con el tema años

.El código:

-- DIFERENCIAS ENTRE FECHAS
--Juan Carlos Gilaranz Benito
-- www.mundosql.es

SELECT DATEDIFF (YEAR,'2016/10/22',GETDATE()) AÑOS
SELECT DATEDIFF (YYYY,'2016/10/22',GETDATE()) AÑOS
SELECT DATEDIFF (YY,'2016/10/22',GETDATE()) AÑOS

Y ahora el resto:

Utilidad ???? Pon en comentario que utilidad le darías tu.