Mostrando entradas con la etiqueta SQL Server. Mostrar todas las entradas
Mostrando entradas con la etiqueta SQL Server. Mostrar todas las entradas

jueves, 31 de mayo de 2018

Cannot connect to WMI provider sql2016


Mensaje de error al abrir el Administrador de configuración de SQL Server en SQL Server: "no se puede conectar al proveedor WMI. No tiene permiso o el servidor está inaccesible"













Ejecutar CMD como administrador.

C:\WINDOWS\system32>cd..

C:\Windows>cd..

C:\>cd "Program Files (x86)"

C:\Program Files (x86)>cd "Microsoft SQL Server"

C:\Program Files (x86)\Microsoft SQL Server>cd 140

C:\Program Files (x86)\Microsoft SQL Server\140>cd Shared

C:\Program Files (x86)\Microsoft SQL Server\140\Shared>mofcomp sqlmgmproviderxpsp2up.mof

Microsoft (R) MOF Compiler Version 10.0.16299.15
Copyright (c) Microsoft Corp. 1997-2006. Todos los derechos reservados.
Analizando el archivo MOF: sqlmgmproviderxpsp2up.mof
El archivo MOF se analizó correctamente
Almacenando información en el repositorio...
Hecho

C:\Program Files (x86)\Microsoft SQL Server\140\Shared>




martes, 6 de febrero de 2018

Could not load file or assembly 'ccenvioocdb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

Could not load file or assembly 'nameDataBase, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null


An error occurred in the Microsoft .NET Framework while trying to load assembly id 65538. The server may be running out of resources, or the assembly may not be trusted with PERMISSION_SET = EXTERNAL_ACCESS or UNSAFE. Run the query again, or check documentation to see how to solve the assembly trust issues. For more information about this error:
System.IO.FileLoadException: Could not load file or assembly 'nameDataBase, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An error relating to security occurred. (Exception from HRESULT: 0x8013150A)
System.IO.FileLoadException:
   at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.Load(String assemblyString)





ALTER DATABASE nameDataBase SET TRUSTWORTHY ON;

domingo, 5 de noviembre de 2017

Función SQL para determinar fecha con Días festivos y Domingos

La función recibe una fecha inicial, y un numero de días los cuales se les va sumar a la fecha inicial, para calcular los días festivos se ocupa una tabla configuration.diasfestivos, si les es de utilidad la tabla comenten para que les pase el script



CREATE FUNCTION dbo.[CalcularFechaConDiasFestivosYDomingos]
(
@Fecha datetime,
@noDias int
)
RETURNS datetime
as
begin
declare @resFecha datetime
declare @FeFin datetime
declare @result int
declare @DiasFeriados int
declare @noDomingos int
declare @Correcto  int
--set @ini = '2016-09-01'
--set @fin = '2016-09-30'
set @FeFin =DATEADD(DAY,@noDias,@Fecha)
set @noDomingos =( Select (datediff(day,@Fecha,@FeFin)-DATEPART(dw,@FeFin)+8)/7)
--select * from configuration.diasfestivos
set @DiasFeriados =( select COUNT(1) FROM configuration.diasfestivos WHERE fedia >= @Fecha AND fedia <= @FeFin)
set @Correcto =0
set @result = @noDomingos+@DiasFeriados
set @resFecha = dateadd(DAY,@result,@FeFin)
/*WHILE (@varfecha<>(@FechaFinal + 1)) */

WHILE (@Correcto =0)
BEGIN
IF (DATEPART(dw,@resFecha) IN (1))
       BEGIN
             SET @resFecha =DATEADD(dd,1,@resFecha)
             SET @Correcto =0
       END
ELSE
       begin
             IF (select COUNT(1) FROM configuration.diasfestivos WHERE fedia = @resFecha)=1
                    BEGIN
                           SET @resFecha =DATEADD(dd,1,@resFecha)
                           SET @Correcto =0
                    END
             ELSE
                    BEGIN
                           SET @Correcto =1
                    END         
       end
END


return @resFecha

end
---------------------------------


Script para creación de tabla días festivos.


CREATE SCHEMA [Configuration]
GO
/****** Object:  Table [Configuration].[DiasFestivos]    Script Date: 21/05/2018 04:29:30 p. m. ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [Configuration].[DiasFestivos](
       [idDiaFestivo] [int] IDENTITY(1,1) NOT NULL,
       [dsDiaFestivo] [nvarchar](100) NULL,
       [feDia] [datetime] NULL,
       [esActivo] [bit] NULL,
 CONSTRAINT [PK_DIASFESTIVOS] PRIMARY KEY CLUSTERED
(
       [idDiaFestivo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [Configuration].[DiasFestivos] ADD  DEFAULT ((0)) FOR [esActivo]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Dias Festivos ' , @level0type=N'SCHEMA',@level0name=N'Configuration', @level1type=N'TABLE',@level1name=N'DiasFestivos'
GO




miércoles, 25 de octubre de 2017

Función para Limpiar caracteres especiales SQL SERVER



CREATE FUNCTION [dbo].[LimpiarCaracteresEspeciales](@cadena varchar(max))
       RETURNS varchar(max)
BEGIN
       DECLARE @pos int,
                    @patron varchar(max);

       Set @patron = '%['+'!''"'+Char(150)+Char(10)+char(13)+Char(9)+Char(34)+char(38)+char(60)+char(62)+char(160)
                                  +char(161)+char(162)+char(163)+char(164)+char(165)+char(166)+char(167)+char(168)+char(169)
                                  +char(170)+char(171)+char(172)+char(173)+char(174)+char(175)+char(176)+char(177)+char(178)
                                  +char(179)+char(180)+char(181)+char(182)+char(183)+char(184)+char(185)+char(186)+char(187)
                                  +char(188)+char(189)+char(190)+char(191)+char(192)+char(193)+char(194)+char(195)+char(196)
                                  +char(197)+char(198)+char(199)+char(200)+char(201)+char(202)+char(203)+char(204)+char(205)
                                  +char(206)+char(207)+char(208)+char(209)+char(210)+char(211)+char(212)+char(213)+char(214)
                                  +char(215)+char(216)+char(217)+char(218)+char(219)+char(220)+char(221)+char(222)+char(223)
                                  +char(224)+char(225)+char(226)+char(227)+char(228)+char(229)+char(230)+char(231)+char(232)
                                  +char(233)+char(234)+char(235)+char(236)+char(237)+char(238)+char(239)+char(240)+char(241)
                                  +char(242)+char(243)+char(244)+char(245)+char(246)+char(247)+char(248)+char(249)+char(250)
                                  +char(251)+char(252)+char(253)+char(254)+char(255)+'.]%';

       SET @Pos = PATINDEX(@patron,@cadena)

       WHILE @Pos > 0 BEGIN
             SET @cadena = STUFF(@cadena, @pos,1,'')
             SET @Pos = PATINDEX(@patron, @cadena)
       END


       RETURN @cadena
END;


viernes, 20 de octubre de 2017

Convertir Numero a Letra SQL SERVER Numero a letra

La siguiente función sql server convierte un numero a letra soporta hasta 12 dígitos es decir hasta 999,999,999,999.99

Con este tutorial puedes convertir cualquier numero en letra de forma fácil y rápida con la ayuda de este SP.








CREATE FUNCTION [dbo].[CantidadConLetra]
(
    @Numero             Decimal(18,2)
)
RETURNS Varchar(180)
AS
BEGIN
    DECLARE @ImpLetra Varchar(180)
        DECLARE @lnEntero bigint,
                        @lcRetorno VARCHAR(512),
                        @lnTerna bigint,
                        @lcMiles VARCHAR(512),
                        @lcCadena VARCHAR(512),
                        @lnUnidades bigint,
                        @lnDecenas bigint,
                        @lnCentenas bigint,
                        @lnFraccion bigint
        SELECT  @lnEntero = CAST(@Numero AS bigint),
                        @lnFraccion = (@Numero - @lnEntero) * 100,
                        @lcRetorno = '',
                        @lnTerna = 1
  WHILE @lnEntero > 0
  BEGIN /* WHILE */
            -- Recorro terna por terna
            SELECT @lcCadena = ''
            SELECT @lnUnidades = @lnEntero % 10
            SELECT @lnEntero = CAST(@lnEntero/10 AS bigint)
            SELECT @lnDecenas = @lnEntero % 10
            SELECT @lnEntero = CAST(@lnEntero/10 AS bigint)
            SELECT @lnCentenas = @lnEntero % 10
            SELECT @lnEntero = CAST(@lnEntero/10 AS bigint)
            -- Analizo las unidades
            SELECT @lcCadena =
            CASE /* UNIDADES */
              WHEN @lnUnidades = 1 THEN 'UN ' + @lcCadena
              WHEN @lnUnidades = 2 THEN 'DOS ' + @lcCadena
              WHEN @lnUnidades = 3 THEN 'TRES ' + @lcCadena
              WHEN @lnUnidades = 4 THEN 'CUATRO ' + @lcCadena
              WHEN @lnUnidades = 5 THEN 'CINCO ' + @lcCadena
              WHEN @lnUnidades = 6 THEN 'SEIS ' + @lcCadena
              WHEN @lnUnidades = 7 THEN 'SIETE ' + @lcCadena
              WHEN @lnUnidades = 8 THEN 'OCHO ' + @lcCadena
              WHEN @lnUnidades = 9 THEN 'NUEVE ' + @lcCadena
              ELSE @lcCadena
            END /* UNIDADES */
            -- Analizo las decenas
            SELECT @lcCadena =
            CASE /* DECENAS */
              WHEN @lnDecenas = 1 THEN
                CASE @lnUnidades
                  WHEN 0 THEN 'DIEZ '
                  WHEN 1 THEN 'ONCE '
                  WHEN 2 THEN 'DOCE '
                  WHEN 3 THEN 'TRECE '
                  WHEN 4 THEN 'CATORCE '
                  WHEN 5 THEN 'QUINCE '
                  WHEN 6 THEN 'DIECISEIS '
                  WHEN 7 THEN 'DIECISIETE '
                  WHEN 8 THEN 'DIECIOCHO '
                  WHEN 9 THEN 'DIECINUEVE '
                END
              WHEN @lnDecenas = 2 THEN
              CASE @lnUnidades
                WHEN 0 THEN 'VEINTE '
                ELSE 'VEINTI' + @lcCadena
              END
              WHEN @lnDecenas = 3 THEN
              CASE @lnUnidades
                WHEN 0 THEN 'TREINTA '
                ELSE 'TREINTA Y ' + @lcCadena
              END
              WHEN @lnDecenas = 4 THEN
                CASE @lnUnidades
                    WHEN 0 THEN 'CUARENTA'
                    ELSE 'CUARENTA Y ' + @lcCadena
                END
              WHEN @lnDecenas = 5 THEN
                CASE @lnUnidades
                    WHEN 0 THEN 'CINCUENTA '
                    ELSE 'CINCUENTA Y ' + @lcCadena
                END
              WHEN @lnDecenas = 6 THEN
                CASE @lnUnidades
                    WHEN 0 THEN 'SESENTA '
                    ELSE 'SESENTA Y ' + @lcCadena
                END
              WHEN @lnDecenas = 7 THEN
                 CASE @lnUnidades
                    WHEN 0 THEN 'SETENTA '
                    ELSE 'SETENTA Y ' + @lcCadena
                 END
              WHEN @lnDecenas = 8 THEN
                CASE @lnUnidades
                    WHEN 0 THEN 'OCHENTA '
                    ELSE  'OCHENTA Y ' + @lcCadena
                END
              WHEN @lnDecenas = 9 THEN
                CASE @lnUnidades
                    WHEN 0 THEN 'NOVENTA '
                    ELSE 'NOVENTA Y ' + @lcCadena
                END
              ELSE @lcCadena
            END /* DECENAS */
            -- Analizo las centenas
            SELECT @lcCadena =
            CASE /* CENTENAS */
              WHEN @lnCentenas = 1 THEN 'CIENTO ' + @lcCadena
              WHEN @lnCentenas = 2 THEN 'DOSCIENTOS ' + @lcCadena
              WHEN @lnCentenas = 3 THEN 'TRESCIENTOS ' + @lcCadena
              WHEN @lnCentenas = 4 THEN 'CUATROCIENTOS ' + @lcCadena
              WHEN @lnCentenas = 5 THEN 'QUINIENTOS ' + @lcCadena
              WHEN @lnCentenas = 6 THEN 'SEISCIENTOS ' + @lcCadena
              WHEN @lnCentenas = 7 THEN 'SETECIENTOS ' + @lcCadena
              WHEN @lnCentenas = 8 THEN 'OCHOCIENTOS ' + @lcCadena
              WHEN @lnCentenas = 9 THEN 'NOVECIENTOS ' + @lcCadena
              ELSE @lcCadena
            END /* CENTENAS */
            -- Analizo la terna
            SELECT @lcCadena =
            CASE /* TERNA */
              WHEN @lnTerna = 1 THEN @lcCadena
              WHEN @lnTerna = 2 THEN @lcCadena + 'MIL '
              WHEN @lnTerna = 3 THEN @lcCadena + 'MILLONES '
              WHEN @lnTerna = 4 THEN @lcCadena + 'MIL '
              ELSE ''
            END /* TERNA */
            -- Armo el retorno terna a terna
            SELECT @lcRetorno = @lcCadena  + @lcRetorno
            SELECT @lnTerna = @lnTerna + 1
   END /* WHILE */
   IF @lnTerna = 1
       SELECT @lcRetorno = 'CERO'
   DECLARE @sFraccion VARCHAR(15)
   SET @sFraccion = '00' + LTRIM(CAST(@lnFraccion AS varchar))
   SELECT @ImpLetra = RTRIM(@lcRetorno) + ' PESOS ' + SUBSTRING(@sFraccion,LEN(@sFraccion)-1,2) + '/100 M.N.'
   RETURN @ImpLetra
END;


miércoles, 18 de octubre de 2017

FORMATOS DE FECHA EN SQL SERVER

Convierte fecha a una cadena en diferentes formatos:
Formatos de fecha en sql server, con los siguientes convert puede convertir a diferentes formatos

SELECT  CONVERT(CHAR(10),GETDATE(), 23) --AAAA-MM-DD
SELECT  CONVERT(CHAR(10),GETDATE(), 101) --MM/DD/AAAA
SELECT  CONVERT(CHAR(10),GETDATE(), 102) --AAAA.MM.DD
SELECT  CONVERT(CHAR(10),GETDATE(), 103) --DD/MM/AAAA
SELECT  CONVERT(CHAR(10),GETDATE(), 104) --DD.MM.AAAA
SELECT  CONVERT(CHAR(10),GETDATE(), 105) --DD-MM-AAAA
SELECT  CONVERT(CHAR(10),GETDATE(), 110) --MM-DD-AAAA
SELECT  CONVERT(CHAR(10),GETDATE(), 111) --AAAA/MM/DD
SELECT  CONVERT(CHAR(8),GETDATE(), 112) --AAAAMMDD
SELECT  CONVERT(CHAR(19),GETDATE(), 20) --AAAA-MM-DD HH:MM:SS (H 1-24)
SELECT  CONVERT(CHAR(23),GETDATE(), 21) --AAAA-MM-DD HH:MM:SS.MSS (H 1-24)
SELECT  CONVERT(CHAR(23),GETDATE(), 25) --AAAA-MM-DD HH:MM:SS.MSS (H 1-24)
SELECT  CONVERT(CHAR(19),GETDATE(), 120) --AAAA-MM-DD HH:MM:SS (H 1-24)
SELECT  CONVERT(CHAR(23),GETDATE(), 121) --AAAA-MM-DD HH:MM:SS.MSS (H 1-24)
SELECT  CONVERT(CHAR(23),GETDATE(), 126) --AAAA-MM-DD?HH:MM:SS.MSS (H 1-24)
SELECT  CONVERT(CHAR(8),GETDATE(), 1) --MM/DD/AA
SELECT  CONVERT(CHAR(8),GETDATE(), 2) --AA.MM.DD
SELECT  CONVERT(CHAR(8),GETDATE(), 3) --DD/MM/AA
SELECT  CONVERT(CHAR(8),GETDATE(), 4) --DD.MM.AA
SELECT  CONVERT(CHAR(8),GETDATE(), 5) --DD-MM-AA
SELECT  CONVERT(CHAR(8),GETDATE(), 10) --MM-DD-AA
SELECT  CONVERT(CHAR(8),GETDATE(), 11) --AA/MM/DD
SELECT  CONVERT(CHAR(6),GETDATE(), 12) --AAMMDD
SELECT  CONVERT(CHAR(20),GETDATE(), 22) --MM/DD/AA H:MM:SS (H 1-12)
SELECT  CONVERT(CHAR(19),GETDATE(), 0)  --Mes DD AAAA h:mmPM (H 1-12)
SELECT  CONVERT(CHAR(9),GETDATE(), 6) --DD mes AA
SELECT  CONVERT(CHAR(10),GETDATE(), 7) --mes DD, AA
SELECT  CONVERT(CHAR(26),GETDATE(), 9) --Mes DD AAAA H:MM:SS:MSS (H 1-12)
SELECT  CONVERT(CHAR(24),GETDATE(), 13) --DD MES AAAA HH:MM:SS:MSS (H 1-24)
SELECT  CONVERT(CHAR(26),GETDATE(), 109) --MES DD AAAA H:MM:SS:MSS (H 1-12)
SELECT  CONVERT(CHAR(19),GETDATE(), 100) --MES DD AAAA H:MM (H 1-12)
SELECT  CONVERT(CHAR(11),GETDATE(), 106) --DD MES AAAA
SELECT  CONVERT(CHAR(12),GETDATE(), 107) --MES DD,AAAA
SELECT  CONVERT(CHAR(24),GETDATE(), 113) --DD MES AAAA HH:MM:SS:MSS (H 1-24)
SELECT  CONVERT(CHAR(8),GETDATE(), 8 ) --HH:MM:SS (H 1-24)
SELECT  CONVERT(CHAR(12),GETDATE(), 14) --HH:MM:SS:MSS (H 1-24)
SELECT  CONVERT(CHAR(8),GETDATE(), 24) --HH:MM:SS (H 1-24)
SELECT  CONVERT(CHAR(8),GETDATE(), 108) --HH:MM:SS (H 1-24)

SELECT  CONVERT(CHAR(12),GETDATE(), 114) --HH:MM:SS:MSS (H 1-24)