Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выбрать всю БД, одним оператором - всю бд 
:(
    Опции темы
sobik
Дата 21.8.2008, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 21.3.2008
Где: Киев, Украина.

Репутация: нет
Всего: 1



Можно ли одним SQL оператором запихнуть всю БД(из нескольких таблиц) в SqlDataReader?

Это сообщение отредактировал(а) sobik - 21.8.2008, 16:59
PM MAIL   Вверх
1stain
Дата 22.8.2008, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

Репутация: 5
Всего: 40



Код

string connectionString = @"Server=(local)\MSSQL2005; Database=Action; Trusted_Connection=yes;";

    string sqlStatement = @"DECLARE TableNameCusror CURSOR FOR SELECT '[' + ss.[NAME] + '].[' + sao.[name] + ']' 
                                                                FROM sys.all_objects AS sao 
                                                                INNER JOIN sys.schemas AS ss ON ss.[SCHEMA_ID] = sao.[SCHEMA_ID]
                                                                WHERE sao.[TYPE] = 'U'
                            DECLARE @TableName NVARCHAR(128);
                            DECLARE @statement NVARCHAR(500);
                            OPEN TableNameCusror;
                            FETCH NEXT FROM TableNameCusror INTO @TableName;
                            WHILE @@FETCH_STATUS = 0
                            BEGIN
                                SET @statement = N'select * from ' + @TableName;
                                EXEC dbo.sp_executesql    @statement;
                                FETCH NEXT FROM TableNameCusror INTO @TableName;
                            END
                            CLOSE TableNameCusror;
                            DEALLOCATE TableNameCusror;";


    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        SqlCommand command = new SqlCommand(sqlStatement, connection);
        connection.Open();
        using (SqlDataReader reader = command.ExecuteReader())
        {
            do
            {
                for (int i = 0; i < reader.FieldCount; i++)
                {
                    Console.Write("{0,-30}", reader.GetName(i));
                }
                Console.WriteLine();
                Console.WriteLine( new string( '-', reader.FieldCount*30 ));

                while (reader.Read())
                {
                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        Console.Write("{0,-30} ",reader[i]);
                    }
                    Console.WriteLine();
                }
                Console.WriteLine();
            } while (reader.NextResult());
        }
    }



--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0395 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.