Saludos, comparto mi presentación sobre BI en Sql Server 2014 incluyéndo Power BI
Espero sea de ayuda,
FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP
Saludos, comparto la presentación sobre HDInsight ofrecida en Windows Azure Boot Camp
Desarrollando un aplicativo me encontré con la curiosidad de saber cuál sería el tipo de datos de una columna en donde sólo se indicara:
select null as A
¿Cual es el tipo de datos de la columna A?
La respuesta es int, ¿cómo lo determiné?, usando la técnica descrita en el artículo [Code] Cómo conocer la estructura de una tabla temporal
El código usado es el siguiente:
select null as A into #t exec tempdb..sp_help #t drop table #t
Para especificar un tipo de datos en particular debemos hacer un cast al NULL
select cast(null as bit) as A into #t exec tempdb..sp_help #t drop table #t
Espero sea de ayuda,
FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP
Hacer definiciones de tablas es siempre mas efectivo que generarlas dinámicamente, por lo que tomarse el trabajo de revisar campo a campo qué campos y cómo aplican a lo que queremos hacer puede tomar tiempo, aquí publico un ejemplo de como llevar los resultados a tabla temporal, ver su estructura para usar dicha información para generar una tabla (o variable tipo tabla) más rápidamente
;With Ejemplo as ( select 1 as b, 'valores' as c union all select 2 as b, 'Misvalores' as c) select * into #t from Ejemplo exec tempdb..sp_help #t drop table #t
El ejemplo es simple pero imagine tener que varios miles de registros y tener que verificar campo a campo la longitud máxima de cada uno de ellos, el tipo de datos, etc.
Uno de los resultados de sp_help retorna
El cual con poco procesamiento podemos convertir en una tabla, tabla temporal o variable tipo tabla según lo requerido
La técnica mencionada solo se recomienda en entornos de desarrollo y no debe ser usada con precaución en tablas con gran cantidad de datos (una opción es limitar el número de registros de la tabla a devolver)
Espero sea de ayuda,
FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP
Saludos,
Seguro se ha notado que al restaurar un backup, se recuperan sólo los usuarios de la base de datos, no los logins (si es el mismo servidor y los logins no fueron afectados no debe haber problema), entonces cómo reconectar los logins con los usuarios?, bueno existen varias técnicas, la más común es eliminar el usuario y volverlo a crear, dicha técnica presenta varios inconvenientes
Si se está migrando un servidor, se recomienda trasladar los logins usando SSIS
La mejor opción es usar sp_change_users_login el cual permite la reconexión de usuarios y logins sin afectar el funcionamiento ni los permisos, a continuación un ejemplo
EXEC sp_change_users_login ‘UPDATE_ONE’,’Usuario’,’Login’
UPDATE_ONE es la acción que enlaza el usuario con el login dado
Espero sea de ayuda,
FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP
Saludos
Para el cambiar el nombre físico de una base de datos basta desconectar la base de datos de Sql Server (Deattach), cambiar el nombre del archivo y luego conectarla de nuevo (Attach), pero el nombre lógico es otra historia, para hacerlo podemos usar el patrón presentado en el siguiente código:
use master
ALTER DATABASE [MiBaseDeDatos] SET OFFLINE –Pone fuera de linea la base de datos
go
ALTER DATABASE [MiBaseDeDatos] MODIFY FILE (NAME=N’NombreAnterior’, NEWNAME=N’NuevoNombre’)
GO
ALTER DATABASE [MiBaseDeDatos] MODIFY FILE (NAME=N’NombreAnterior_log’, NEWNAME=N’NuevoNombre_log’)
GO
ALTER DATABASE [MiBaseDeDatos] SET ONLINE –Reactiva la base de datos
Espero sea de ayuda,
FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP
Para exportar la información del modelo podemos usar el siguiente
comando:
C:Program FilesMicrosoft SQL Server110Master Data ServicesConfiguration>MDSModelDeploy.exe createpackage -model ModelName -package C:FolderMyPackage -version "VERSION_1" -includedata Creating a package for model ModelName Saving package to file C:FolderMyPackage.pkg MDSModelDeploy operation completed successfully. Elapsed time: 00:00:34.1175437
Parámetros usados:
Parámetro | Descripción |
createpackage | Indica que se desea generar un paquete para deployment |
-model | Nombre del modelo a publicar (sensible a la mayúscula) |
-package | Nombre del archivo a crear |
-version | Nombre de la versión que se desea publicar (sensible a la mayúscula) |
-includedata |
Al agregarlo indica que los datos contenidos se adjunten al archivo a crear (considerar su uso en escenarios con grandes volúmenes de datos) |
Para Restaurar un Modelo MDS en otra instancia podemos seguir los siguientes
pasos:
Lo primero es establecer el nombre del servicio con el que se está
trabajando para ello se puede ejecutar el siguiente comando:
C:Program FilesMicrosoft SQL Server110Master Data ServicesConfiguration>MDSModelDeploy.exe listservices MDS services (Service, Website, Virtual Path): MDS1, Default Web Site, MDS MDSModelDeploy operation completed successfully. Elapsed time: 00:00:04.8538819
y luego, con el dato del nombre del servicio podemos proceder a ejecutar el
procedimiento de restauración
C:Program FilesMicrosoft SQL Server110Master Data ServicesConfiguration>MDSModelDeploy.exe deployclone -package MyPackage.pkg -service MDS Deploying clone of package MyPackage.pkg MDSModelDeploy operation completed successfully. Elapsed time: 00:01:41.6708683
Espero sea de ayuda,
FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP
Se adjunta el paquete de ejemplo para la detección de cambios usando la técnica t-Sql MERGE
También se presentan técnicas alternas en los siguientes artículos
FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP
Se adjunta el paquete de ejemplo para la detección de cambios usando la técnica MergeJoin
También se presentan técnicas alternas en los siguientes artículos
Espero sea de ayuda,
FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP
Se adjunta el paquete de ejemplo para la detección de cambios usando la técnica lookUp
También se presentan técnicas alternas en los siguientes artículos
Espero sea de ayuda,
FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP