Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE OR ALTER PROCEDURE dbo.carga_users_new
AS
BEGIN
SET NOCOUNT ON
DECLARE @p_cli_codigo int
DECLARE @p_username varchar(10)
DECLARE @p_rand int
DECLARE @p_new_id varchar(120)
DECLARE @ok char(1)
-- grabo todos los usuarios que tenemos el user_id en la tabla users
insert into users_new (user_id, cookie_id, cli_codigo, username)
select users.user_id, users.cookie_id,
users_11.cli_codigo, users_11.username
from users_11
inner join users
on users.cli_codigo = users_11.cli_codigo and LTRIM(RTRIM(LOWER(users.username))) = LTRIM(RTRIM(LOWER(users_11.username)))
-- los que ya grabe los borro
delete from users_11
where exists(select * from users_new
where cli_codigo = users_11.cli_codigo and username = users_11.username)
-- agrego los que no estaban
DECLARE cursor_1 CURSOR FOR
SELECT cli_codigo, username from users_11
OPEN cursor_1
FETCH cursor_1 INTO @p_cli_codigo, @p_username
WHILE (@@FETCH_STATUS = 0)
BEGIN
set @ok = 'N'
WHILE (@ok = 'N')
BEGIN
set @p_rand = ROUND(((999999999 - 1) * RAND() + 1), 0)
set @p_new_id = convert(varchar(120),newid())
if (select count(*) from users where user_id = @p_rand or cookie_id = @p_new_id) = 0
begin
insert into users_new (user_id, cookie_id, cli_codigo, username)
values (@p_rand, @p_new_id, @p_cli_codigo, @p_username)
set @ok = 'S'
end
END
FETCH cursor_1 INTO @p_cli_codigo, @p_username
END
CLOSE cursor_1
DEALLOCATE cursor_1
-- cambio los cookie_id
DECLARE cursor_2 CURSOR FOR
SELECT cli_codigo, username from users_new
OPEN cursor_2
FETCH cursor_2 INTO @p_cli_codigo, @p_username
WHILE (@@FETCH_STATUS = 0)
BEGIN
set @ok = 'N'
WHILE (@ok = 'N')
BEGIN
set @p_new_id = convert(varchar(120),newid())
if (select count(*) from users where cookie_id = @p_new_id) = 0
begin
update users_new set cookie_id = @p_new_id
where cli_codigo = @p_cli_codigo
and username = @p_username
set @ok = 'S'
end
END
FETCH cursor_2 INTO @p_cli_codigo, @p_username
END
CLOSE cursor_2
DEALLOCATE cursor_2
-- los pongo todos activos
update users_new set active_user = 'Y'
END
GO
GO
CREATE OR ALTER PROCEDURE dbo.carga_users_new
AS
BEGIN
SET NOCOUNT ON
DECLARE @p_cli_codigo int
DECLARE @p_username varchar(10)
DECLARE @p_rand int
DECLARE @p_new_id varchar(120)
DECLARE @ok char(1)
-- grabo todos los usuarios que tenemos el user_id en la tabla users
insert into users_new (user_id, cookie_id, cli_codigo, username)
select users.user_id, users.cookie_id,
users_11.cli_codigo, users_11.username
from users_11
inner join users
on users.cli_codigo = users_11.cli_codigo and LTRIM(RTRIM(LOWER(users.username))) = LTRIM(RTRIM(LOWER(users_11.username)))
-- los que ya grabe los borro
delete from users_11
where exists(select * from users_new
where cli_codigo = users_11.cli_codigo and username = users_11.username)
-- agrego los que no estaban
DECLARE cursor_1 CURSOR FOR
SELECT cli_codigo, username from users_11
OPEN cursor_1
FETCH cursor_1 INTO @p_cli_codigo, @p_username
WHILE (@@FETCH_STATUS = 0)
BEGIN
set @ok = 'N'
WHILE (@ok = 'N')
BEGIN
set @p_rand = ROUND(((999999999 - 1) * RAND() + 1), 0)
set @p_new_id = convert(varchar(120),newid())
if (select count(*) from users where user_id = @p_rand or cookie_id = @p_new_id) = 0
begin
insert into users_new (user_id, cookie_id, cli_codigo, username)
values (@p_rand, @p_new_id, @p_cli_codigo, @p_username)
set @ok = 'S'
end
END
FETCH cursor_1 INTO @p_cli_codigo, @p_username
END
CLOSE cursor_1
DEALLOCATE cursor_1
-- cambio los cookie_id
DECLARE cursor_2 CURSOR FOR
SELECT cli_codigo, username from users_new
OPEN cursor_2
FETCH cursor_2 INTO @p_cli_codigo, @p_username
WHILE (@@FETCH_STATUS = 0)
BEGIN
set @ok = 'N'
WHILE (@ok = 'N')
BEGIN
set @p_new_id = convert(varchar(120),newid())
if (select count(*) from users where cookie_id = @p_new_id) = 0
begin
update users_new set cookie_id = @p_new_id
where cli_codigo = @p_cli_codigo
and username = @p_username
set @ok = 'S'
end
END
FETCH cursor_2 INTO @p_cli_codigo, @p_username
END
CLOSE cursor_2
DEALLOCATE cursor_2
-- los pongo todos activos
update users_new set active_user = 'Y'
END
GO
Depends On
2Used By
No items found