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

Откуда:
Сообщений: 5
Черкните пожалуйста запрос:
Есть база данных, нужно узнать её размер.
Если он превышает 3000 MB
То нужно выполнить любое другое действие. (например создать новую таблицу)
2 июл 13, 11:53    [14509418]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Green Adm
Есть база данных, нужно узнать её размер.

Что для вас есть "размер базы" ?
Размер всех физических файлов базы, включая лог ?
Размер всех физических файлов базы, не включая лог ?
Размер всех объектов внутри файлов базы, включая системные ?
Размер всех объектов внутри файлов базы, не включая системные ?
2 июл 13, 12:03    [14509468]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Green Adm
Member

Откуда:
Сообщений: 5
Glory,
После выполнения sp_helpdb 'NewDataBase'
в поле db_size то что нужно
я не могу написать тот кусок кода который проводит проверку с последующим тем или иным действием
2 июл 13, 12:06    [14509489]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Green Adm
я не могу написать тот кусок кода который проводит проверку с последующим тем или иным действием

Что вас останавливает ? Или что вам мешает ?
2 июл 13, 12:08    [14509499]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Green Adm
Member

Откуда:
Сообщений: 5
Glory,
я написал
IF db_size > 3000MB
CREATE TABLE NewTable
не работает
Я не понимаю как обратиться к данным таблицы которые являются результатом запроса sp_helpdb 'NewDataBase'
К єтим даннім я ведь не могу обратиться как к стационарным.
2 июл 13, 12:12    [14509518]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Green Adm
Я не понимаю как обратиться к данным таблицы которые являются результатом запроса sp_helpdb 'NewDataBase'

Создать таблицу под результат возвращаемый процедурой.
Использовать INSERT ... EXEC
2 июл 13, 12:15    [14509543]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Green Adm
Member

Откуда:
Сообщений: 5
Glory,
очень прошу можно в примере пожалуйста.
2 июл 13, 12:18    [14509568]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Green Adm
очень прошу можно в примере пожалуйста.

Открыть хелп команды INSERT вы тоже не можете ?
2 июл 13, 12:21    [14509584]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Green Adm
Glory,
очень прошу можно в примере пожалуйста.

exec sp_helptext 'sp_help'
2 июл 13, 12:22    [14509588]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Green Adm
Member

Откуда:
Сообщений: 5
Glory,

могу. не понимаю структуру запроса в принципе.
нельзя проверить размер базы <> и что-то сделать?
Нужна вспомогательная динамическая таблица?
Пожалуйста покажите запрос
процедура
запись в новую таблицу
а проверку на размер я уже как-то сам докумекаю надеюсь.
2 июл 13, 12:24    [14509610]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Green Adm
могу. не понимаю структуру запроса в принципе.

Для этого в хелпах и дают примеры

Green Adm
нельзя проверить размер базы <> и что-то сделать?

Можно

Green Adm
Нужна вспомогательная динамическая таблица?

Если вы собрались использовать sp_helpdb, то вспомогательная таблица нужна. Но она вовсе не динамическая. А того формата, какой результат возвращает sp_helpdb

Green Adm
Пожалуйста покажите запрос
процедура
запись в новую таблицу

Откройте в хелпе статью про INSERT и найдите пример - в чем проблема ?
2 июл 13, 12:28    [14509644]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Green Adm,

Размер БД в мегабайтах:
use NewDataBase;

select sum(cast(size as float) / 128) as db_size_Mb
from sys.database_files;
2 июл 13, 12:30    [14509660]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5136
у меня вот такой скрипт:
  SELECT
  LTRIM(STR((CONVERT (dec (15,2),dbsize) + CONVERT(dec (15,2),logsize)) * 8192 / 1048576, 15, 2) + ' MB') РазмерБазы
FROM
(
 SELECT SUM(CONVERT(BIGINT,CASE WHEN status & 64 = 0 THEN size ELSE 0 END)) dbsize
 , SUM(CONVERT(BIGINT,CASE WHEN status & 64 <> 0 THEN size ELSE 0 END)) logsize
 FROM dbo.sysfiles
) big
2 июл 13, 13:22    [14510039]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Александр52,

В чём тайный смысл этих приседаний с вложенным запросом? Почему нельзя сразу так?
SELECT
  LTRIM(STR(CONVERT (dec (15,2),SUM(size)) * 8192 / 1048576, 15, 2) + ' MB') РазмерБазы
FROM dbo.sysfiles
2 июл 13, 13:36    [14510129]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить