Почему эта сетка не работает? [Дубликат]

Следующий код извлекает все внешние ключи, отмеченные «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
3
задан Michael_B 2 August 2017 в 15:11
поделиться

1 ответ

Когда речь идет об использовании искусства ASCII с использованием свойства grid-template-areas , в настоящее время существует важное ограничение: Именованные области сетки должны быть прямоугольными .

Другими словами, тетрис-формы сетки с тем же именем не допускаются .

Это поведение определено в двух частях спецификации.

7.3. Именованные области: the grid-template-areas свойство

Если именованная область сетки охватывает несколько ячеек сетки, но эти ячейки не образуют один заполненный прямоугольник, объявление недействительно.

В будущей версии этого модуля могут быть разрешены непрямоугольные или отсоединенные области.

9. Размещение элементов сетки

Каждый элемент сетки имеет область сетки, прямоугольный набор ячеек сетки, который занимает элемент сетки.

В первом примере, все области сетки образуют прямоугольники. Поэтому правило действительно.

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 должны иметь одинаковое количество столбцов. См. Это сообщение для получения дополнительной информации:

9
ответ дан Michael_B 15 August 2018 в 22:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: