Datos truncados y no ejecuta procedimiento SQL
Hola Hernán, tal vez me puedas ayudar con el siguiente código:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[seguridad_dar_privilegios]
@grupo_base_desde_dnd_se_copia as varchar (10),
@grupo_a_copiar as varchar (10)
AS
BEGIN
declare @empresacod as varchar (10),
@sentencia as varchar (5000)
declare empresas cursor for
select conjunto from dbo.conjunto
where conjunto <> '' +@grupo_base_desde_dnd_se_copia+ '' order by conjunto
open empresas
fetch next from empresas into @empresacod
while @@fetch_status = 0
begin
set @sentencia =
'insert into dbo.privilegio_ex (usuario, conjunto, accion)
select usuario, '' +@empresacod+ '' , accion from dbo.privilegio_ex
where usuario = '' +@grupo_a_copiar+ '' and conjunto = '' +@grupo_base_desde_dnd_se_copia+ ''
and usuario+cast(accion as varchar(15)) not in (select usuario+cast(accion as varchar(15))
from dbo.privilegio_ex where usuario = '' +@grupo_a_copiar+ '' and conjunto = '' +@empresacod+ '')'
begin transaction
EXEC (@sentencia)
commit transaction
fetch next from empresas into @empresacod
end
close empresas
deallocate empresas
END
Al ejecutarlo, me da el siguiente error:
Msg 8152, Level 16, State 14, Line 1
String or binary data would be truncated.
The statement has been terminated.
¿Qué estoy haciendo mal?, Saludos y muchas gracias. Francisco
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[seguridad_dar_privilegios]
@grupo_base_desde_dnd_se_copia as varchar (10),
@grupo_a_copiar as varchar (10)
AS
BEGIN
declare @empresacod as varchar (10),
@sentencia as varchar (5000)
declare empresas cursor for
select conjunto from dbo.conjunto
where conjunto <> '' +@grupo_base_desde_dnd_se_copia+ '' order by conjunto
open empresas
fetch next from empresas into @empresacod
while @@fetch_status = 0
begin
set @sentencia =
'insert into dbo.privilegio_ex (usuario, conjunto, accion)
select usuario, '' +@empresacod+ '' , accion from dbo.privilegio_ex
where usuario = '' +@grupo_a_copiar+ '' and conjunto = '' +@grupo_base_desde_dnd_se_copia+ ''
and usuario+cast(accion as varchar(15)) not in (select usuario+cast(accion as varchar(15))
from dbo.privilegio_ex where usuario = '' +@grupo_a_copiar+ '' and conjunto = '' +@empresacod+ '')'
begin transaction
EXEC (@sentencia)
commit transaction
fetch next from empresas into @empresacod
end
close empresas
deallocate empresas
END
Al ejecutarlo, me da el siguiente error:
Msg 8152, Level 16, State 14, Line 1
String or binary data would be truncated.
The statement has been terminated.
¿Qué estoy haciendo mal?, Saludos y muchas gracias. Francisco
Respuesta de hernan59_arg
1