Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MS SQL

  Все выпуски  

RFpro.ru: Базы данных MS SQL


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 2274
∙ повысить рейтинг »
Alexander Babich
Статус: Профессор
Рейтинг: 357
∙ повысить рейтинг »
PsySex
Статус: Профессионал
Рейтинг: 70
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Базы данных / MSSQL, Oracle, Interbase, Firebird, FoxPro

Номер выпуска:120
Дата выхода:19.02.2016, 15:51
Администратор рассылки:F®ost (Администратор)
Подписчиков / экспертов:10 / 6
Вопросов / ответов:3 / 7

Консультация # 144966: Здравствуйте уважаемые эксперты!!! Скажите пожалуйсто как при помощи запроса опредилить есть ли подключения к определенной базе, их количество, и пользователей???...
Консультация # 174395: Здравствуйте. Имеется следующая ситуация: есть БД(сделана при помощи Paradox) и сама программа с апросами,выборками и т.п.(с помощью Delphi). Какой наиболее просто способ есть переноса БД в язык msSQL при минимальных изменениях в программе написанной на Delphi?...
Консультация # 108122: Имеется таблица: Дата Товар Кол-Во 2007 машина 5 2008 машина 10 2009 машина 7 2007 коляска 2 2009 кубик 3 2010 кубик 5 как проссусмировать и получить на выходе Товар Кол-во машина 12 коляска 2 кубик 8...

Консультация # 144966:

Здравствуйте уважаемые эксперты!!! Скажите пожалуйсто как при помощи запроса опредилить есть ли подключения к определенной базе, их количество, и пользователей???

Дата отправки: 25.09.2008, 09:35
Вопрос задал: PaTiFoN
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Челноков Виктор Альбертович:

Здравствуйте, PaTiFoN!
Предоставляет сведения о текущих пользователях, сеансах и процессах в экземпляре компонента Microsoft SQL Server Database Engine. Данные могут быть отфильтрованы, чтобы возвращать только те процессы, которые не простаивают, принадлежат конкретному пользователю или принадлежат определенному сеансу.

Соглашения о синтаксисе в Transact-SQL

Синтаксис

sp_who [ [ @loginame = ] 'login' | session ID | 'ACTIVE' ]


Аргументы
[ @loginame = ] 'login' | session ID | 'ACTIVE'
Используется для фильтрации результирующего набора.

Аргумент login имеет тип sysname и определяет процессы, принадлежащие конкретному имени входа.

Аргумент session ID (SPID в SQL Server 2000 и более ранних версиях) является идентификатором сеанса, принадлежащего экземпляру SQL Server. Аргумент session ID имеет тип smallint.

Значение ACTIVE исключает сеансы, ожидающие следующей команды от пользов ателя.

Если значение не указано, эта процедура возвращает все сеансы, принадлежащие экземпляру.

Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы
Процедура sp_who возвращает результирующий набор со следующими данными.

Столбец Тип данных Описание
spid
smallint
Идентификатор сеанса.

ecid
smallint
Идентификатор контекста выполнения заданного потока, связанный с определенным идентификатором сеанса.

ECID = {0, 1, 2, 3, ...n}, где 0 всегда представляет основной или родительский поток, а {1, 2, 3, ...n} представляет подпроцессы.

status
nchar(30)
Состояние процесса. Возможны следующие значения.

dormant. SQL Server сбрасывает сеанс.

running. В сеансе выполняются один или несколько пакетов. Если включен режим MARS, в сеансе может выполняться несколько пакетов. Дополнительные сведения см. в разделе Using Multiple Active Result Sets (MA RS).

background. В сеансе выполняется фоновая задача, например обнаружение взаимоблокировок.

rollback. В сеансе выполняется откат транзакций.

pending. В сеансе ожидается освобождение потока исполнителя.

runnable. Задачи сеанса находятся в очереди исполнителей планировщика, ожидая времени такта.

spinloop. Задачи сеанса ожидают освобождения взаимоблокировки.

suspended. Сеанс ожидает завершения события, например операции ввода-вывода.

loginame
nchar(128)
Имя входа, связанное со специфическим процессом.

hostname
nchar(128)
Имя узла или компьютера для каждого процесса.

blk
char(5)
Идентификатор сеанса для блокирующего процесса, если такой существует. В противном случае значение этого столбца — 0.

Если транзакция, связанная с данным идентификатором сеанса, заблокирована потерянной распределенной транзакцией, этот столбец возвратит -2 для блокирующей потерянной транзакции.

dbnam e
nchar(128)
База данных, используемая процессом.

cmd
nchar(16)
Команда компонента Database Engine (инструкция Transact-SQL, внутренний процесс компонента Database Engine и так далее), выполняющаяся для процесса.

request_id
int
Идентификатор для запросов, запущенных в определенном сеансе.


При параллельной обработке подпроцессы создаются для определенного идентификатора сеанса. Главный поток обозначается как spid = <xxx> и ecid =0. Другие подпроцессы имеют одинаковый spid = <xxx>, но с ecid > 0.

Замечания
Блокирующий процесс (который может иметь монопольную блокировку) является процессом, удерживающим ресурсы, в которых нуждается другой процесс.

В SQL Server 2000 и более поздних версиях всем потерянным распределенным транзакциям назначается значение идентификатора сеанса, равное -2. Потерянные распределенные транзакции являются распределенными транзакциями, которые не связаны с каким либо иде нтификатором сеанса. Дополнительные сведения см. в разделе Использование помеченных транзакций (полная модель восстановления).

SQL Server 2000 и более поздние версии резервируют значения идентификаторов сеанса от 1 до 50 для внутреннего использования, значения идентификаторов сеанса от 51 и выше представляют пользовательские сеансы.

Разрешения
Требуется разрешение VIEW SERVER STATE на сервер для просмотра всех выполняющихся сеансов на экземпляре SQL Server. Иначе пользователь сможет увидеть только текущий сеанс.

Примеры
А. Перечень всех текущих процессов
В следующем примере используется хранимая процедура sp_who без параметров для возврата сведений обо всех текущих пользователях.

Копировать код
USE master;
GO
EXEC sp_who;
GO


Б. Перечень процессов определенного пользователя
Следующий пример показывает, как просмотреть сведения об отдельном текущем пользователе по имени входа.

Копировать код
USE mast er;
GO
EXEC sp_who 'janetl';
GO


В. Отображение всех активных процессов
Копировать код
USE master;
GO
EXEC sp_who 'active';
GO


Г. Отображение определенного процесса, определяемого идентификатором сеанса
Копировать код
USE master;
GO
EXEC sp_who '10' --specifies the process_id;
GO

Консультировал: Челноков Виктор Альбертович
Дата отправки: 25.09.2008, 10:39
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Коровин Александр:

Здравствуйте, PaTiFoN!
Существует хранимая процедура sp_who, которая показывает все подключения к базам на сервере.
В Query Analyzer можно составить такой запрос и выгрузить все данные во временную таблицу, а потом выбрать из нее нужные. Ниже привожу пример такого запроса.
Временная таблица tb имеет поля, выводимые процедурой.
Удачи.

Приложение:

Консультировал: Коровин Александр
Дата отправки: 25.09.2008, 10:41
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 174395:

Здравствуйте. Имеется следующая ситуация: есть БД(сделана при помощи Paradox) и сама программа с апросами,выборками и т.п.(с помощью Delphi). Какой наиболее просто способ есть переноса БД в язык msSQL при минимальных изменениях в программе написанной на Delphi?

Дата отправки: 20.11.2009, 21:02
Вопрос задал: yulenka-ona
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Victor Pyrlik:

Здравствуйте, yulenka-ona.
воспользуйтесь импортом таблиц Paradox в MS SQL - но сначала надо сделать там базу данных (пустую).
MS SQL Manager (Microsoft SQL Server Management Studio )- база данных - задачи - импорт данных (в разных версиях может несколько отличаться).
Запускаем указываем источник и приемник, смотрим таблицы и т.д. последовательно проходя все шаги, в конце жмем Ok. и получаем базу данных.
Но, надо понимать, что скорей всего придется что-то подправлять (например, типы данных, ключи, ссылочные ключи, правила и т.д.).
Во вторых, MS SQL и аналогичные БД сильны не толь ко тем что позволяет работать по технологии "КЛИЕНТ-СЕРВЕР", но и возможность формировать логику в виде процедур, функций, просмотров и т.д.
Языка msSQL не существует, есть TSQL (Transact-SQL).
В Delphi можно оставить использование BDE - но тогда Вы много чего потеряете и по сути можете только сложности получить от перехода на MS SQL.
А потому, надо просто вме сто компонентов BDE использовать компоненты ADO (TADOConection, TADOTable и т.д.).
Просто замените ваши таблицы на эти компоненты и всё. Код практически переписывать не придется.

Как вариант – создайте в MS Access проект базы данных MS SQL и с помощью того же Access просто делайте импорт всего что Вам надо - наиболее простой способ.. smile

Консультировал: Victor Pyrlik
Дата отправки: 25.11.2009, 06:16
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 108122:

Имеется таблица:

Дата Товар Кол-Во
2007 машина 5
2008 машина 10
2009 машина 7
2007 коляска 2
2009 кубик 3
2010 кубик 5

как проссусмировать и получить на выходе

Товар Кол-во
машина 12
коляска 2
кубик 8

Дата отправки: 05.11.2007, 16:37
Вопрос задал: Мельник Ярослав Анатольевич
Всего ответов: 4
Страница онлайн-консультации »


Консультирует din:

Здравствуйте, Мельник Ярослав Анатольевич!
Вот этим запросом:

SELECT Товар, SUM(Кол-Во) AS Кол-Во
FROM Таблица
WHERE Дата <> 2008
GROUP BY Товар

Консультировал: din
Дата отправки: 05.11.2007, 17:29
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Титов Михаил Анатольевич:

Здравствуйте, Мельник Ярослав Анатольевич!
Для таких запросов предназначенны группировки и агрегатные функции, вам в частности понадобится функция Sum. Запрос:

SELECT Товар, Sum(Кол-во) AS Кол-во
FROM Таблица
GROUP BY Товар

Вот результат только будет

Товар Кол-во
машина 22
коляска 2
кубик 8

Консультировал: Титов Михаил Анатольевич
Дата отправки: 06.11.2007, 00:23
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Челноков Виктор Альбертович:

Здравствуйте, Мельник Ярослав Анатольевич!
Попробуйте следующий запрос
SELECT машина, SUM([кол-во]) AS сумма
FROM dbo.Table_1
GROUP BY машина

Консультировал: Челноков Виктор Альбертович
Дата отправки: 06.11.2007, 06:56
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Dubrovin:

Здравствуйте, Мельник Ярослав Анатольевич!
select Товар, sum(Кол-Во)
from ТАБЛИЦА
group by Товар

Консультировал: Dubrovin
Дата отправки: 06.11.2007, 11:52
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное