Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите построить запрос Если количество в таблице 0 тогда наполняем из соседней базы  [new]
aptom
Member

Откуда:
Сообщений: 102
SET NOCOUNT ON;

IF OBJECT_ID('dbo.CorruptedTables') IS NOT NULL DROP TABLE dbo.CorruptedTables
CREATE TABLE dbo.CorruptedTables (tbl sysname)

DECLARE @sql VARCHAR(MAX) ,
    @tablename sysname;

DECLARE droptable CURSOR FOR 
SELECT name
FROM upp1810.sys.tables 



OPEN droptable
FETCH NEXT FROM droptable 
INTO @tablename
WHILE @@FETCH_STATUS = 0 

    BEGIN
--SET @sql = 'SELECT * INTO dbo.'+ @tablename +' FROM upp1810.dbo.'+ @tablename
          

  
SET @sql ='INSERT INTO uppcr.dbo.'+ @tablename + ' SELECT * FROM upp1810.dbo.'+ @tablename

 --       PRINT @sql
begin try   

     if select count(*) from uppcr.dbo.'+ @tablename + ' = 0 then 
    -- вот тут исполнять если в теблице 0 записей 
EXEC (@sql)



end try
BEGIN CATCH
	INSERT INTO dbo.CorruptedTables(tbl) VALUES (@tablename)
END CATCH;
        FETCH NEXT
   FROM droptable
   INTO @tablename
    END

CLOSE droptable
DEALLOCATE droptable
go

select * from dbo.CorruptedTables


Сообщение было отредактировано: 9 ноя 16, 00:36
8 ноя 16, 22:11    [19872272]     Ответить | Цитировать Сообщить модератору
 Re: помогите построить запрос Если количество в таблице 0 тогда наполняем из соседней базы  [new]
o-o
Guest
set @sql =
'if (select count(*) from uppcr.dbo.'+ @tablename + ') = 0 ' +
'INSERT INTO uppcr.dbo.'+ @tablename + ' SELECT * FROM upp1810.dbo.'+ @tablename;
EXEC (@sql);
8 ноя 16, 22:23    [19872298]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить