Hoy les voy a comentar algo referido a la nueva versión de MS SQL Server o mejor dicho MSSQLServer2K5.
Escenario: Si corremos un script de generación de objetos en donde se esta utilizando ‘sp_tableoption’ con el parámetro 'insert row lock', para manejar lockeos nosotros mismos y no el dbms, podemos encontrar el siguiente error:
Msg 15600, Level 15, State 1, Procedure sp_tableoption, Line 48
An invalid parameter or option was specified for procedure 'sys.sp_tableoption'.
Msg 15600, Level 15, State 1, Procedure sp_tableoption, Line 48
An invalid parameter or option was specified for procedure 'sys.sp_tableoption'.
Solución: Debe comentariarse esta opcion, pues, no es soportada en SQL2K5 aunque en los book's figure que se acepta el parámetro, pero, solo de entrada, pues el motor ignora esta configuración.
Ej:
/****** Objeto: tabla [dbo].[MiTabla] fecha de la secuencia de comandos: 15/09/2000 16:00:00 ******/
CREATE TABLE [dbo].[Mitabla] (
[EventoID] [int] IDENTITY (1, 1) NOT NULL ,
[TID] [int] NOT NULL ,
[FechaHora] [datetime] NOT NULL ,
[Accion] [char] (2) NOT NULL ,
[Resultado] [char] (2) NOT NULL ,
[Co] [int] NOT NULL ,
[Origen] [varchar] (30) NULL ,
[Descripcion] [varchar] (500) NULL
) ON [PRIMARY]
GO
/****** Objeto: tabla [dbo].[Mitabla] Para que el lockeo se haga por registro ******/
--EXEC sp_tableoption 'Mi tabla', 'insert row lock', 'true'
GO
Espero que sirva y una abrazo virtual para todos.
JuanPL