Следующий код извлекает все внешние ключи, отмеченные «WITH NOCHECK», а затем использует оператор ALTER для их исправления:
-- configure cursor on all FKs with "WITH NOCHECK"
DECLARE UntrustedForeignKeysCursor CURSOR STATIC FOR
SELECT f.name,
t.name
FROM sys.foreign_keys AS f
LEFT JOIN sys.tables AS t
ON f.parent_object_id = t.object_id
Where Is_Not_Trusted = 1
OPEN UntrustedForeignKeysCursor
-- loop through the untrusted FKs
DECLARE @FKName varchar(100)
DECLARE @TableName varchar(100)
FETCH NEXT FROM UntrustedForeignKeysCursor INTO @FKName, @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
-- Rebuild the FK constraint WITH CHECK
EXEC ('ALTER TABLE ' + @TableName + ' WITH CHECK CHECK CONSTRAINT ' + @FKName)
-- get next user
FETCH NEXT FROM UntrustedForeignKeysCursor INTO @FKName, @TableName
END
-- cleanup
CLOSE UntrustedForeignKeysCursor
Когда речь идет об использовании искусства ASCII с использованием свойства grid-template-areas
, в настоящее время существует важное ограничение: Именованные области сетки должны быть прямоугольными .
Другими словами, тетрис-формы сетки с тем же именем не допускаются .
Это поведение определено в двух частях спецификации.
7.3. Именованные области:
the grid-template-areas
свойствоЕсли именованная область сетки охватывает несколько ячеек сетки, но эти ячейки не образуют один заполненный прямоугольник, объявление недействительно.
В будущей версии этого модуля могут быть разрешены непрямоугольные или отсоединенные области.
Каждый элемент сетки имеет область сетки, прямоугольный набор ячеек сетки, который занимает элемент сетки.
blockquote>В первом примере, все области сетки образуют прямоугольники. Поэтому правило действительно.
grid-template-areas: "....... header header" "sidebar content content";
В вашем втором примере область
header
образует непрямоугольную форму. Таким образом, правило недействительно.grid-template-areas: "....... header header" "sidebar header content";
(Обратите внимание, что период (
.
) или серия связанных периодов (...
) образуют безымянную область сетки, чтобы что правило выше не применяется ( spec reference ).)
К счастью, Grid предоставляет несколько методов для выделения элементов сетки.
Вместо этого из
grid-template-areas
вы можете использовать линейное размещение .
.wrapper { display: grid; grid-gap: 10px; grid-template-columns: 120px 120px 120px; grid-auto-rows: 100px; background-color: #fff; color: #444; } .header { grid-column: 2 / 4; grid-row: 1 / 3; } .sidebar { grid-column: 1 / 2; grid-row: 2 / 3; } .content { grid-column: 3 / 4; grid-row: 2 / 3; } .box { background-color: #444; color: #fff; border-radius: 5px; padding: 20px; font-size: 150%; } .header { background-color: #999; } body { margin: 40px; }
<div class="wrapper"> <div class="box header">Header</div> <div class="box sidebar">Sidebar</div> <div class="box content">Content</div> </div>
ТАКЖЕ, обратите внимание, что все строковые значения
grid-template-areas
должны иметь одинаковое количество столбцов. См. Это сообщение для получения дополнительной информации: