Anuncios

lunes, 6 de diciembre de 2010

Foros en Español para tener ayuda de expertos en SQL Server




Un excelente lugar para buscar ayuda en español a preguntas sobre SQL Server es el MSDN.

Este es un sitio de Microsoft dedicado a brindar ayuda no sólo en SQL Server, si no en .NET, Workflows, Azure, XNA, Internet Explorer, etc.

Para acceder al foro de SQL Server en español, ir a:

http://social.msdn.microsoft.com/Forums/es-ES/category/devdataes

Si usted es más alienado y prefiere el inglés:

http://social.msdn.microsoft.com/Forums/en-US/category/sqlserver

Lo bueno de este foro es que existen varios MVPs (Microsoft Most Valuable Professional). En estos meses pude comprobar que el nivel del foro es bastante bueno.

Los profesionales de ahí, están catalogados por estrellas. 5 estrellas es lo máximo (yo sigo en 1, pero apenas voy un mes). Cualquier persona de la comunidad MSDN puede contestar las preguntas que sepa. Existen moderadores que evalúan respuestas o las complementan.


 

Tienes dudas ?

Quieres saber más ?

Pregunta en este blog.


 


 

People who read this post also read :



6 comentarios:

  1. Hola quiero hacer una consulta a una determinada tabla, el resultado que me arroje debería pasarlo a un parámetro para que ese parámetro consulte a otras tablas de otra base de datos.
    Espero que me puedan ayudar.

    ResponderEliminar
  2. hola a todos

    amigos quisiera que me ayuden con un stored procedure que tengo echo en sql 2008 al cual funciona 100% bien ejemplo exec crearbd [bd1] pero al usar exec crearbd [1010] provoca un error solo cuando utilizo numero

    ResponderEliminar
  3. Elvis, ese es el comportamiento normal. No se aceptan números en bases de datos.

    ResponderEliminar
  4. Obregón,

    Busca en google stored procedure out parameter.
    Son ejemplos de procedimientos almacenados que contienen parámetros de salida.

    ResponderEliminar
  5. Buenas, como hago una lectura de usuario desde un procedimiento en de base de datos

    ResponderEliminar
  6. Buenas Tardes

    Presento la siguiente situación. El Triggers en la actualidad funciona pero deseo agregarle la funcionalidad de que me me refleja el mensaje '@?@1#USR_DISOPD# ya que la cantidad de items no puede ser mayor a 3#' pero que solo lo refleja si están llenos los 3 renglones de lo contrario no dejar de cargar algún dato. Es decir si deseo caragar 1 o 2 renglones no me debería permitir. Anexo Query

    USE [GEORGE]
    GO
    /****** Object: Trigger [dbo].[InsUSR_DISOPD] Script Date: 06/11/2019 17:36:24 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    /****** CWA Object: Insert trigger for table USR_DISOPD - Script Date: 12/12/17 11:24:19 ******/
    ALTER TRIGGER [dbo].[InsUSR_DISOPD] ON [dbo].[USR_DISOPD]
    FOR INSERT
    AS
    Begin
    /* BEGIN CWA SECTION - DO NOT TOUCH */
    Declare
    @numrows int,
    @numnull int,
    @PKValues varchar(255),
    @FKFields varchar(255),
    @USR_DISOPD_PERIOD numeric(6,0) ,
    @USR_DISOPD_CODREG varchar(6) ,
    @USR_DISOPD_NUMDIA smallint ,
    @cwaerrmsg varchar(255),
    @cwaerr int

    Select @numrows=@@rowcount
    if @numrows=0
    return


    Select @cwaerr=0
    if update(USR_DISOPD_PERIOD) Or
    update(USR_DISOPD_CODREG)
    begin
    if (Select count(*)
    From USR_DISOPI,inserted
    Where (USR_DISOPI.USR_DISOPI_PERIOD =inserted.USR_DISOPD_PERIOD) and
    (USR_DISOPI.USR_DISOPI_CODREG =inserted.USR_DISOPD_CODREG) ) != @numrows
    begin
    Select @cwaerr=1
    Declare cur Insensitive Cursor
    for Select inserted.USR_DISOPD_PERIOD, inserted.USR_DISOPD_CODREG, inserted.USR_DISOPD_NUMDIA
    from inserted
    where not exists (Select * From USR_DISOPI where (USR_DISOPI.USR_DISOPI_PERIOD =inserted.USR_DISOPD_PERIOD) and
    (USR_DISOPI.USR_DISOPI_CODREG =inserted.USR_DISOPD_CODREG) )
    for Read Only
    Open cur
    fetch next from cur into @USR_DISOPD_PERIOD, @USR_DISOPD_CODREG, @USR_DISOPD_NUMDIA
    if @@fetch_status=0
    begin
    Select @PKValues = convert(varchar(255),@USR_DISOPD_PERIOD) + ',' +convert(varchar(255),@USR_DISOPD_CODREG) + ',' +convert(varchar(255),@USR_DISOPD_NUMDIA)
    Select @cwaerrmsg='@?@1#USR_DISOPD#' + @PKValues + '#USR_DISOPD_PERIOD, USR_DISOPD_CODREG#'
    Raiserror(@cwaerrmsg, 16,-1)
    fetch next from cur into @USR_DISOPD_PERIOD, @USR_DISOPD_CODREG, @USR_DISOPD_NUMDIA
    end
    Deallocate cur
    end
    end

    if @cwaerr=1
    Rollback Transaction

    /* END CWA SECTION */

    /* BEGIN Usuario TRIGGER SECTION */
    UPDATE B
    SET B.USR_DISOPD_SALDIA = B.USR_DISOPD_IMPDIA
    FROM USR_DISOPI,INSERTED A,USR_DISOPD B
    WHERE USR_DISOPI_PERIOD = B.USR_DISOPD_PERIOD
    AND USR_DISOPI_CODREG = B.USR_DISOPD_CODREG
    AND USR_DISOPI_PERIOD = A.USR_DISOPD_PERIOD
    AND USR_DISOPI_CODREG = A.USR_DISOPD_CODREG
    AND B.USR_DISOPD_NUMDIA = A.USR_DISOPD_NUMDIA

    DECLARE @PERIOD AS VARCHAR(6),
    @CODREG AS VARCHAR(15),
    @IMPTOT AS NUMERIC(18,2),
    @NROITM AS INT,
    @SALDIF AS NUMERIC(18,2),
    @IMPDIA AS NUMERIC(18,2)

    SELECT @PERIOD = USR_DISOPD_PERIOD,
    @CODREG = USR_DISOPD_CODREG,
    @NROITM = USR_DISOPD_NROITM
    FROM INSERTED




    SELECT @IMPTOT = SUM(USR_DISOPD_IMPDIA)
    FROM USR_DISOPD
    WHERE USR_DISOPD_PERIOD = @PERIOD
    AND USR_DISOPD_CODREG = @CODREG
    AND @NROITM = 3

    SELECT @SALDIF = USR_DISOPI_IMPDIF
    FROM USR_DISOPI
    WHERE USR_DISOPI_PERIOD = @PERIOD
    AND USR_DISOPI_CODREG = @CODREG

    SELECT @IMPDIA = SUM(USR_DISOPD_IMPDIA)
    FROM INSERTED
    WHERE USR_DISOPD_PERIOD = @PERIOD
    AND USR_DISOPD_CODREG = @CODREG

    IF (@IMPTOT <> @SALDIF AND @NROITM = 3)
    BEGIN
    SET @cwaerrmsg = '@?@1#USR_DISOPD# ya que el importe debe ser igual al total diferido #'
    SET @CWAERR = 1
    RAISERROR (@cwaerrmsg,16,- 1)
    END

    IF @NROITM > 3
    BEGIN
    SET @cwaerrmsg = '@?@1#USR_DISOPD# ya que la cantidad de items no puede ser mayor a 3#'
    SET @CWAERR = 1
    RAISERROR (@cwaerrmsg,16,- 1)
    END


    IF @CWAERR = 1
    ROLLBACK TRANSACTION
    /* END Usuario TRIGGER SECTION */

    end

    ResponderEliminar