Администраторы базы данных

Вопросы и ответы для специалистов по базам данных, которые хотят улучшить свои навыки работы с базами данных и учиться у других в сообществе

2
Изменить ссылочный индекс для внешнего ключа
У меня есть что-то вроде этого: CREATE TABLE T1 ( Id INT ... ,Constraint [PK_T1] PRIMARY KEY CLUSTERED [Id] ) CREATE TABLE T2 ( .... ,T1_Id INT NOT NULL ,CONSTRAINT [FK_T2_T1] FOREIGN KEY (T1_Id) REFERENCES T1(Id) ) По причинам производительности (и тупика) я создал новый индекс для T1 CREATE UNIQUE …

1
Почему у SEQUENCEs MS SQL Server нет параметра ORDER, как у Oracle?
В документации CREATE SEQUENCEпо T-SQL видно, что CREATE SEQUENCEкоманда не имеет ORDERпараметров. Для сравнения, документы Oracle дляCREATE SEQUENCE показа параметров ORDER/ NOORDER: ORDER Укажите, ORDERчтобы гарантировать, что порядковые номера генерируются в порядке запроса. Это предложение полезно, если вы используете порядковые номера в качестве меток времени. Гарантирующий порядок обычно не важен …

1
Как мне найти FamilyGUID обширной базы данных
При выполнении RESTOREкоманды я понимаю, что SQL Server гарантирует, что существующая база данных не будет перезаписана другой базой данных. Эту проверку можно обойти с помощью REPLACE. Я понимаю, что SQL Server использует файл резервной копии, FamilyGUIDчтобы определить, совпадает ли восстанавливаемая база данных с перезаписываемой базой данных. Это правильно? Я понимаю, …

4
Как преднамеренно фрагментировать индекс SQL Server?
Я хотел бы намеренно создавать условия плохих индексов для имеющейся у меня тестовой базы данных SQL Server 2017, просто чтобы лучше понять эти сценарии обслуживания? Индекс SQL Server и ведение статистики Существует ли быстрый / автоматический способ поставить под угрозу целостность индекса или увеличить его фрагментацию? Знаете ли вы какой-нибудь …

2
Можно ли PIVOT на утверждение, как
Можно ли группировать по элементам (как в COLUMN LIKE='Value%') в PIVOTтаблице? У меня есть таблица [DBT]. [Status], которая содержит различные статусы (баз данных, экземпляров и т. Д.), И я не хочу сводить / запрашивать все значения PROD и TEST как отдельные значения, но группировать их. Например Вместо того , чтобы …

1
для вывода в формате XML ('')
Когда я запускаю следующее select t.type from (values ('Green'),('Blue'),('Red')) as t(type) for xml path('') Я получаю этот вывод <type>Green</type> <type>Blue</type> <type>Red</type> Если я запускаю следующее select t.type + '/' from (values ('Green'),('Blue'),('Red')) as t(type) for xml path('') Я получаю этот вывод Green/Blue/Red/ Почему добавление конкатенации в select приводит к удалению …

3
Как работает триггер T-SQL, который срабатывает только при реальных изменениях?
У меня есть триггер таблицы на UPDATE и INSERT, который добавляет строку в другую таблицу. Нужно только добавить строку, если один из четырех столбцов изменился. Я попытался использовать IF UPDATE (col) для проверки изменений, но у него есть слепое пятно. Это только проверяет, что вошло какое-то значение. Мне нужно пойти …
9 t-sql  trigger 

2
Удаляет ли SELECT мертвые строки, как VACUUM?
Я возился с VACUUMи заметил некоторое неожиданное поведение, когда SELECTизвлечение строк из таблицы, кажется, сокращает объем работы, VACUUMкоторую необходимо выполнить впоследствии. Тестовые данные Примечание: автовакуум отключен CREATE TABLE numbers (num bigint); ALTER TABLE numbers SET ( autovacuum_enabled = 'f', toast.autovacuum_enabled = 'f' ); INSERT INTO numbers SELECT generate_series(1, 5000); Испытание …

3
Почему в этом запросе отсутствует предложение FROM, а не ошибка?
Итак, у нас есть запрос с подзапросом, в котором есть опечатка. В нем отсутствует предложение FROM. Но когда вы запускаете его, это не ошибка! Почему!? SELECT 1 ,r.id ,'0D4133BE-C1B5-4141-AFAD-B171A2CCCE56' ,GETDATE() ,1 ,'Y' ,'N' ,oldItem.can_view ,oldItem.can_update FROM Role r JOIN RoleObject oldReport ON r.customer_id = oldReport.customer_id JOIN RoleItem oldItem ON oldReport.id …

1
Видимо, моя функция сборки CLR вызывает тупики?
Наше приложение должно одинаково хорошо работать с базой данных Oracle или базой данных Microsoft SQL Server. Чтобы облегчить это, мы создали несколько UDF для гомогенизации нашего синтаксиса запроса. Например, в SQL Server есть GETDATE (), а в Oracle - SYSDATE. Они выполняют одну и ту же функцию, но это разные …


3
Разрешает ли SQL Server (делает видимым) DDL внутри транзакции до транзакции перед фиксацией?
В PostgreSQL я могу создать таблицу с некоторыми тестовыми данными, а затем в транзакции перенести ее в новый столбец другого типа, что приведет к перезаписи одной таблицы COMMIT, CREATE TABLE foo ( a int ); INSERT INTO foo VALUES (1),(2),(3); С последующим, BEGIN; ALTER TABLE foo ADD COLUMN b varchar; …

2
Нормализована ли таблица без первичного ключа?
На лекции мой лектор показал нам стол без первичного ключа. На вопрос он сказал, что в 3NF при удалении транзитивных зависимостей нормально иметь таблицу без первичного ключа. Однако ни один первичный ключ не означает, что функциональных зависимостей нет - но 3NF - это удаление транзитивных зависимостей, и меня учили, что …

2
Как я могу избавиться от бесполезной параллельной ветки при отмене поворота одной строки?
Рассмотрим следующий запрос, который разворачивает несколько горстей скалярных агрегатов: SELECT A, B FROM ( SELECT MAX(CASE WHEN ID = 1 THEN 1 ELSE 0 END) VAL1 , MAX(CASE WHEN ID = 2 THEN 1 ELSE 0 END) VAL2 , MAX(CASE WHEN ID = 3 THEN 1 ELSE 0 END) VAL3 …

3
Используется ли ключевое слово «ALIAS»?
Согласно PostgreSQL с 7.1 по 9.1 (в настоящее время не поддерживается), ALIASуказывается как зарезервированное слово, по крайней мере, для SQL-99. Более поздние версии не показывают это - предполагая, что оно было отброшено как зарезервированное слово. Старые документы PostgreSQL говорят, что «наличие ключевого слова не указывает на существование функции». При псевдониме …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.