Не мог бы кто то пояснить следующие детали:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = Report,
@recipients = 'psa@prin.ru',
@query = 'sp_helpdb master' ,
@subject = test,
@attach_query_result_as_file = 1 ;
1. Вот эта конструкция в итоге работает, но чего я не могу понять в синтаксисе. Почему я должен в 3 и 4 строках использовать символ
' причем обязательно, а остальным это не требуется?
SELECT DB_NAME(database_id) AS database_name
, database_id
, [file_id]
, type_desc
, data_space_id
, name AS logical_file_name
, physical_name
, (SIZE*8/1024) AS size_mb
, CASE max_size
WHEN -1 THEN 'unlimited'
ELSE CAST((CAST (max_size AS BIGINT)) * 8 / 1024 AS VARCHAR(10))
END AS max_size_mb
, CASE is_percent_growth
WHEN 1 THEN CAST(growth AS VARCHAR(3)) + ' %'
WHEN 0 THEN CAST(growth*8/1024 AS VARCHAR(10)) + ' mb'
END AS growth_increment
, is_percent_growth
FROM sys.master_files
ORDER BY 1, type_desc DESC, [file_id];
2. Вот этот скрипт прекрасно делает табличку с размерами всех файлов БД на сервере.
Но если я подсуну его внутрь первого вместо простейшего sp_helpdb master то получу отлуп:
Сообщение 102, уровень 15, состояние 1, строка 13
Неправильный синтаксис около конструкции "unlimited".
Ни хрена я не могу понять использование этих долбаных кавычек, может кто то пояснить?