SQL Server en Linux

La ultima noticia y lo que parece ser la bomba de la semana y el año en el mundo de las bases de datos. MSSQL Server va a tener una versión que correrá en Linux. Para que versiones no se sabe, que funcionalidades van a estar disponibles, licenciamiento, todavía todo es un misterio, pero creo que si es buena noticia!

A la expectativa; acá el texto del anuncio en Ingles:

MSSQL Love Linux

 

Publicado en MSSQL Administration

Encontrar las dependencias en mi base de datos

Escribe esta consulta temprano para buscar las dependencias de un procedimiento que estaba modificando, pude haber utilizado el sp_depends para que me liste todas las dependencias pero no me hubiese listado los totales que es lo que realmente estaba buscando.

SELECT DISTINCT
OBJECT_NAME(o.object_id) ,
v.name ,
COUNT(1)
FROM
sys.objects o
INNER JOIN master.dbo.spt_values v ON o.type = SUBSTRING(v.name, 1, 2) COLLATE catalog_default
AND v.type = 'O9T'
INNER JOIN sys.sql_dependencies d ON o.object_id = d.object_id
INNER JOIN sys.schemas s ON o.schema_id = s.schema_id
WHERE
o.object_id = OBJECT_ID('<MIPROCEDIMIENTO>')
AND d.class < 2
GROUP BY
OBJECT_NAME(o.object_id) ,
v.name
ORDER BY
3 DESC;
GO


sp_depends '<MIPROCEDIMIENTO>';</pre>
<pre>
Tagged with: , , , ,
Publicado en MSSQL Development, Utilitarios

sp_executesql vrs sp_sqlexec

Estos procedimientos son utilizados comúnmente para ejecutar codigo Transact de manera dinamica; es codigo que armamos a partir de hileras para producir un producto que de otra forma seria un poco complicado.

sp_sqlexec esta en desuso, es un procedimiento que MSSQL ya no soporta y por tanto se deberia de reescribir cualquier codigo que lo este utilizando en este momento.

Cuando ejecutamos codigo dinamico podemos usar sp_executesql o bien exec. Con la diferencia de que el sp_executesql probablemente creara un plan de ejecucion que se pueda reutilizar para ejecuciones posteriores.

Sintaxis


USE master
GO

DECLARE @vsql NVARCHAR(max)

SET @vsql = 'select top 210 * from sys.tables'

EXEC(@vsql)

EXEC sys.sp_sqlexec @vsql

EXEC sys.sp_executesql @vsql

Tagged with: , , ,
Publicado en MSSQL Development, Utilitarios

Data Files – Espacio Reservado y libre

De ahora en adelante quiero compartir un poco mas frecuentemente lo que uso a diario o lo que aprendo de una u otra forma. Ciertamente he estado un poco acalambrado y ocupado por muchos cambios que se avecinaron en los últimos meses.

Espero que esta consulta para listar los archivos de una base de datos, su espacio reservado y el espacio libre para en ambos en MB, por data file les sea de utilidad

SELECT a.fileid,
       CONVERT(DECIMAL(12, 2), Round(a .size / 128.000, 2)) AS [FILESIZEINMB],
       CONVERT(DECIMAL(12, 2), Round(Fileproperty (a. NAME, 'SpaceUsed') / 128.000, 2)) AS [SPACEUSEDINMB],
       CONVERT(DECIMAL (12, 2), Round ((a. SIZE - Fileproperty (a. NAME, 'SpaceUsed')) / 128.000, 2)) AS [FREESPACEINMB],
       a.NAME AS [DATABASENAME],
       a.filename AS [FILENAME],
       b .NAME
FROM sys. sysfiles a
LEFT OUTER JOIN sys. filegroups b ON a.groupid = b. data_space_id


Publicado en MSSQL Administration

Como exportar los diagramas de bases de datos de MSSQL

Esta semana estuvimos trabajando en presentaciones en el trabajo y estuve buscando una manera rápida de exportar los diagramas de base datos a una aplicación donde pudiese modificarlos de una mejor manera; lo aprendido en dos simples lineas.

1. Si se piensa o se necesita mover estos diagramas a otra base de datos, lo mejor es crearlos en una herramienta como el MS Visio que te permite crear diagramas entidad relación o relacionales y de ahí exportarlos a SQL.

2. Si ya se crearon los diagramas, no existe una manera simple de exportarlos a ninguna herramienta después del Visio 2010, el Visio 2013 a mi entender es menos robusto en estas funcionalidades. No queda mas que copiar el diagrama, para hacer esto simplemente se tiene que editar el diagrama, ya cuando estamos en modo de edición simplemente vamos al menú Diagrama de Bases de datos [Database Diagram] y elegimos la opción Copiar el diagrama al porta papeles [Copy Diagram to Clipboard]; esto nos genera una imagen a partir del diagrama no es editable pero sirve para presentaciones.

Espero sea útil.

Tagged with: , , , , ,
Publicado en Utilitarios

This is Microsoft’s surprising ‘Plan B’ for mobile

Featured Image -- 225

Cambio de estrategia!

Quartz

Microsoft’s mobile comeback—at least how the company had intended—isn’t happening.

Despite Microsoft’s early presence in the smartphone industry—years ahead of Apple and Google—and recent critical acclaim for the software, Windows Phone is a flop. In the second quarter, Microsoft’s global smartphone market share was just 2.5%, according to IDC. That represented a decline from the previous year in both share and actual shipments, despite a growing smartphone market. It truly is a two-horse race, with Google and Apple representing a combined 96.4% of shipments last quarter.

A zoomed-out view of the smartphone industry shows just how completely Microsoft has missed the smartphone revolution.

Microsoft smartphone sales chart

But Microsoft, under new CEO Satya Nadella, still aspires to be a major player in the mobile industry. And this is where its stunted market share of smartphone software platforms really hurts. Not only is it missing out on potential hardware revenue, but it’s also losing a distribution channel for its own software and services…

Ver la entrada original 453 palabras más

Publicado en MSSQL Administration

Script para listar permisos

Esto no es algo nuevo, en realidad tengo mucho tiempo de tener este codigo. Y otras veces me fue super util. Hoy de hecho me funciono en el trabajo cuando necesitaba replicar permisos de una base de datos que tuvimos que cambiar de un servidor a otros.

SELECT 
		[Permisos] = state_desc 
			+ ' ' + permission_name 
			+ ' on [' + c.name
			+ '].[' + b.name 
			+ '] to [' + ar.name 
			+ ']' COLLATE latin1_general_ci_as
FROM 
	sys.database_permissions AS a
	INNER JOIN sys.objects AS b 
		ON a.major_id = b.object_id
	INNER JOIN sys.schemas AS c 
		ON b.schema_id = c.schema_id
	INNER JOIN sys.database_principals AS ar 
		ON a.grantee_principal_id = ar.principal_id
UNION
SELECT 
		[Permisos] = state_desc 
			+ ' ' + permission_name 
			+ ' on Schema::['+ c.name 
			+ '] to [' + ar.name 
			+ ']' COLLATE latin1_general_ci_as
FROM 
	sys.database_permissions AS a
	INNER JOIN sys.schemas AS c 
		ON a.major_id = c.schema_id AND a.class_desc = 'Schema'
	INNER JOIN sys.database_principals AS ar 
		ON a.grantee_principal_id = ar.principal_id
		
Tagged with: , , , ,
Publicado en MSSQL Administration, Utilitarios, Vistas de Sistema
Busca por:
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 112 seguidores