Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
среда выполнения интеграции SSIS в Фабрика данных Azure
В выражениях идентификаторы обозначают столбцы и переменные, значения которых могут быть использованы в операциях. Выражения могут использовать обычные и сложные идентификаторы.
Обычные идентификаторы
Обычный идентификатор — это идентификатор, который не требует дополнительных квалификаторов. Например MiddleName, столбец из таблицы Contacts базы данных AdventureWorks , — это пример обычного идентификатора.
Имена обычных идентификаторов должны соответствовать следующим правилам.
Первый символ имени, по определению стандарта Юникод 2.0, должен быть буквой или символом подчеркивания (_).
Последующие символы могут быть буквами или числами по определению стандарта Юникод 2.0, символами подчеркивания (_), знаками @, $, и #.
Внимание
Внутренние пробелы и прочие символы, не входящие в приведенный список, не должны использоваться в обычных идентификаторах. Чтобы использовать пробелы и специальные символы, необходимо использовать квалифицированный идентификатор вместо обычного идентификатора.
Квалифицированные идентификаторы
Составной идентификатор — это идентификатор, заключённый в квадратные скобки. Для идентификатора может потребоваться разделитель, потому что либо имя идентификатора содержит пробелы, либо имя идентификатора начинается не с буквы или символа подчеркивания. Например, имя столбца Middle Name в выражении должно быть заключено в квадратные скобки и записано как [Middle Name].
Если имя идентификатора содержит пробелы или не является допустимым именем обычного идентификатора, идентификатор должен быть квалифицирован. Для определения идентификаторов средство оценки выражений использует квадратные скобки ([]). Скобки ставятся в первую и последнюю позицию строки. Например, идентификатор 5$> преобразуется в [5$>]. Скобки могут быть использованы с именами столбцов, именами переменных и именами функций.
Если вы создаёте выражения в диалоговых окнах Конструктора SSIS, обычные идентификаторы автоматически заключаются в квадратные скобки. Тем не менее, квадратные скобки необходимы, только если имя содержит недопустимые символы. Например, для столбца с именем MiddleName квадратные скобки не требуются.
Нельзя ссылаться в выражениях на имена столбцов, содержащие квадратные скобки. Например, столбец с именем Column[1] не может быть использован в выражении. Чтобы использовать такой столбец в выражении, его необходимо переименовать без использования квадратных скобок.
Идентификаторы происхождения
В выражениях можно использовать идентификаторы происхождения для ссылки на столбцы. Идентификаторы происхождения назначаются автоматически при первом создании пакета. Идентификатор происхождения для столбца можно просмотреть на вкладке Свойства столбца диалогового окна Расширенный редактор в конструкторе SSIS.
Если вы ссылаетесь на столбец, используя его идентификатор происхождения, этот идентификатор должен включать символ # в качестве префикса. Например, на столбец с идентификатором происхождения 147 следует ссылаться как на #147.
Если выражение успешно проходит синтаксический анализ, вычислитель выражений заменяет идентификаторы происхождения на имена столбцов в диалоговом окне.
Уникальные имена столбцов
Многие компоненты, используемые в пакетах, могут содержать столбцы с одинаковыми именами. Если эти столбцы используются в выражениях, их необходимо однозначно определить, прежде чем выражения можно будет успешно разобрать. Средство вычисления выражений поддерживает точечную нотацию для указания источника столбца. Например, двум столбцам с именем Age присваиваются имена FlatFileSource.Age и OLEDBSource.Age, это означает, что они относятся к источникам FlatFileSource и OLEDBSource. Синтаксический анализатор рассматривает такие уточненные имена как обычные имена столбцов.
Имена исходных компонентов и имена столбцов квалифицируются по отдельности. Следующий пример показывает правильное использование квадратных скобок в точечной нотации.
Имя компонента источника содержит пробелы.
[MySo urce].AgeПервый символ в имени столбца недопустим.
MySource.[#Age]И имя компонента источника, и имя столбца содержат недопустимые символы.
[MySource?].[#Age]
Внимание
Если оба элемента в точечной нотации заключены в одну пару скобок, вычислитель выражений интерпретирует эту пару как единый идентификатор, а не как комбинацию «источник-столбец».
Переменные в выражениях
При использовании переменных в выражениях, необходимо использовать префикс @ перед именем переменной. Например, выражение @Counter является ссылкой на переменную Counter . Символ @ не является частью имени переменной. Он только указывает средству оценки выражений на принадлежность объекта к переменным. Если вы строите выражение в диалоговом окне конструктора Integration Services, символ @ будет автоматически добавлен к имени переменной. Недопустимо ставить пробелы между символом @ и именем переменной.
Имена переменных должны удовлетворять тем же самым правилам, что и имена других обычных идентификаторов.
Первый символ имени, по определению стандарта Юникод 2.0, должен быть буквой или символом подчеркивания (_).
Последующие символы могут быть буквами или числами по определению стандарта Юникод 2.0, символами подчеркивания (_), знаками @, $, и #.
Если имя переменной содержит символ, не разрешенный этими правилами, переменная должна быть заключена в квадратные скобки. Например, имя переменной, содержащее пробел, должно быть заключено в квадратные скобки. Перед открывающей скобкой должен стоять символ @. Например, для ссылки на переменную My Name используется запись @[My Name]. Недопустимо ставить пробелы между именем переменной и скобками.
Примечание.
Имена пользовательских и системных переменных чувствительны к регистру.
Уникальные имена переменных
Служба Integration Services поддерживает пользовательские переменные и предоставляет набор системных переменных. По умолчанию пользовательские переменные принадлежат к пространству имен User , а системные переменные — к пространству имен System . Можно создать дополнительные пространства имен для пользовательских переменных и изменить имена существующих пространств имен, чтобы они лучше соответствовали требованиям приложения. Конструктор выражений отображает переменные в области видимости из всех пространств имён.
Все переменные имеют область и принадлежат какому-нибудь пространству имен. Переменная имеет область видимости пакета либо область видимости контейнера или задачи в пакете. Построитель выражений в конструкторе SSIS отображает только переменные из текущей области видимости. Дополнительные сведения см. в статье Переменные в службах Integration Services (SSIS) и разделе об использовании переменных в пакетах.
Переменные, используемые в выражениях, должны иметь уникальные имена для их верной оценки средством оценки выражений. Если в пакете используется несколько переменных с одним и тем же именем, их пространства имен должны быть разными. Служба Integration Services предоставляет оператор разрешения пространства имен, состоящий из двух двоеточий (::); он предназначен для уточнения пространства имен переменной. Например, в следующем выражении используются две переменные с именем Count. Одна принадлежит к пространству имен User , а другая — к пространству имен MyNamespace .
@[User::Count] > @[MyNamespace::Count]
Внимание
Сочетание пространства имен и уточненного имени переменной необходимо заключить в квадратные скобки, чтобы средство оценки выражений смогло распознать переменную.
Если значение переменной Count в пространстве имен User равно 10, а значение переменной Count из пространства MyNamespace равно 2, то выражение принимает значение true , поскольку средство оценки выражений правильно распознает две различные переменные.
Если имена переменных неуникальны, ошибки не возникнет. Вместо этого средство оценки выражений будет использовать только один экземпляр переменной для вычисления выражения, и результат выражения будет неверным. Например, следующее выражение необходимо для сравнения значений (10 и 2) для двух разных переменных Count , но выражение принимает значение false , потому что средство оценки выражений использует один экземпляр переменной Count дважды.
@Count > @Count