Выберите все столбцы из всех таблиц в SQL Server 2008

Если бы Ваш Timer только когда-либо будет иметь одну задачу выполниться тогда, я предложил бы разделить ее на подклассы:

import java.util.Timer;
import java.util.TimerTask;

public class ReschedulableTimer extends Timer
{
    private Runnable  task;
    private TimerTask timerTask;

    public void schedule(Runnable runnable, long delay)
    {
        task = runnable;
        timerTask = new TimerTask()
        {
            @Override
            public void run()
            {
                task.run();
            }
        };
        this.schedule(timerTask, delay);
    }

    public void reschedule(long delay)
    {
        timerTask.cancel();
        timerTask = new TimerTask()
        {
            @Override
            public void run()
            {
                task.run();
            }
        };
        this.schedule(timerTask, delay);
    }
}

необходимо будет работать над кодом для добавления проверок на неправильное употребление, но это должно достигнуть того, что Вы хотите. Эти ScheduledThreadPoolExecutor, кажется, не создал в поддержке перепланирования, существующие задачи также, но аналогичный подход должны работать там также.

10
задан marc_s 8 October 2009 в 05:22
поделиться

3 ответа

Этот SQL сделает это ...

DECLARE @SQL AS VarChar(MAX)
SET @SQL = ''

SELECT @SQL = @SQL + 'SELECT * FROM ' + TABLE_SCHEMA + '.[' + TABLE_NAME + ']' + CHAR(13)
FROM INFORMATION_SCHEMA.TABLES

EXEC (@SQL)
29
ответ дан 3 December 2019 в 13:19
поделиться

Если вы собираетесь отправить в Excel, я бы посоветовал вам использовать мастер экспорта и просто выбрать все таблицы в нем. В обозревателе объектов наведите курсор на имя базы данных и щелкните правой кнопкой мыши. Выберите задачи - экспорт данных и следуйте указаниям мастера. Я не понимаю, почему кому-то нужна вся база данных в Excel, но это лучший способ. Если вам нужно сделать это более одного раза, вы можете сохранить экспорт в пакете SSIS.

2
ответ дан 3 December 2019 в 13:19
поделиться

Можно получить имя всех столбцов из sys.columns
Можно получить имя всей таблицы из sys.tables

Но получить все данные из всех таблиц невозможно. Если в запросе участвует более одной таблицы, необходимо JOIN. Если не указаны условия соединения, таблицы объединяются как полное декартово произведение, то есть каждая строка из каждой таблицы сопоставляется с каждой строкой из всех других таблиц. Такой запрос, который вы запрашиваете, будет производить для 10 таблиц с 10 записями в каждой не менее 10e10 записей, т.е. 100 миллиардов записей. Я уверен, что вы этого не хотите.

Возможно, если вы объясните, что вам , чего достичь, а не , как , мы сможем лучше помочь.

Выбрать * из каждой таблицы, одну за другой, вы можете использовать недокументированную, но хорошо известную sp_msforeachtable:

sp_msforeachtable 'select  * from ?'
3
ответ дан 3 December 2019 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: