Mostrando las entradas con la etiqueta transaq-sql. Mostrar todas las entradas
Mostrando las entradas con la etiqueta transaq-sql. Mostrar todas las entradas

miércoles, 2 de julio de 2008

Como resolver el problema del usuario huérfano luego de restaurar una base de datos de SQL-Server

Esto sucede cuando restauramos una base de datos en otra instancia o servidor de SQL-Server y como el Backup guarda el permiso de usuario dentro de ella misma pero cuando se restaura SQL-Server no restaura el usuario dentro de la nueva instancia y aunque creamos el usuario de nuevo en la nueva instancia o ya exista de todos modos no lo enlaza. Así que aquí les van los pasos a seguir:

1) Crea el usuario ya sea de dominio o de SQL-Server en el nuevo servidor o instancia de SQL-Server.

2) Ejecute en consola de comando de SQL-Server dentro del Management Studio si es SQL 2005 las siguientes líneas de comando:

alter authorization on database::"databasename" to "domonio\usernameusername"
go
use "databasename"
execute as user = N'dbo'revert
go

Hasta la próxima!,

Manolo Herrera

martes, 18 de marzo de 2008

Remote tables are not updatable. Updatable keyset-driven cursors on remote tables require a transaction with the REPEATABLE_READ or SERIALIZABLE isola

Este error se debe a que estamos utilizando server enlazados o link servers y estamos utilizando cursores para recorrer la data. Si no estamos actualizando el cursor es mejor indicar que es de solo lectura y evitamos este error. Al final de la sentencia del cursor debemos agregar FOR READ ONLY. Y Listo.. Si por el contrario, necesitamos actualizar el cursor deberemos de indicarle un nivel mas alto de insolación para el manejo de transacciones y esto lo podemos ajustar con la sentencia
SET TRANSACTION ISOLATION LEVEL. Chequen la info en este link:
http://msdn2.microsoft.com/en-us/library/ms173763....

Y por ultimo para garantizarnos que el cursor nos de información correcta podemos utilizar la sentencia INSENSITIVE en la declaración del cursor y esto copiará una tabla temporal. http://msdn2.microsoft.com/en-us/library/ms180169....
Extraído del articulo: http://www.sqlmonster.com/Uwe/Forum.aspx/sql-serve...
Me sirvio para resolver un problema y pueda que le servia alguno de mis amigos. Code4Fun!

Manolo Herrera

sábado, 6 de enero de 2007

Fwd: Tip SQL: Calculando el ultimo dia del mes

En base a una fecha especifica podemos calcular el ultimo dia del mes:


declare @Año varchar(4), @Mes varchar (2), @FechaEspecifica datetime , @Fecha varchar(10), @FechaInicial datetime , @FechaFinal datetime

set @FechaEspecifica = getdate()

select @Año = Convert(varchar (4),datepart(year ,@FechaEspecifica))

select @Mes = right('0' +Convert(varchar(2), datepart(month,@FechaEspecifica )),2)

set @Fecha = @Año+@Mes+ '01' -- compongo la fecha especifica al primer dia del mes

set @FechaInicial = Convert( datetime,@Fecha) --- obtengo el primer dia del mes

print @FechaInicial

set @FechaFinal = dateadd( month,1,@FechaInicial) -1 -- incremento un mes y le resto un dia

print @FechaFinal

--- version corta

print dateadd(month ,1, Convert(datetime ,Convert(varchar(4 ),datepart(year,@FechaEspecifica ))+right('0'+Convert(varchar (2),datepart(month ,@FechaEspecifica)),2)+ '01'))-1



-- Resultados Obtenidos

Jan 1 2007 12:00AM

Jan 31 2007 12:00AM

Jan 31 2007 12:00AM

--
Saludos,

Manolo Herrera