Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Инструкцию tsql INSERT можно использовать для загрузки данных в распределенную или реплицированную таблицу sql Server Parallel Data Warehouse (PDW). Дополнительные сведения о INSERT см. в разделе INSERT. Для реплицированных таблиц и всех столбцов, отличных от распределения в распределенной таблице, PDW использует SQL Server для неявного преобразования значений данных, указанных в инструкции, в тип данных целевого столбца. Дополнительные сведения о правилах преобразования данных SQL Server см. в разделе "Преобразование типов данных" для SQL. Однако для столбцов распространения PDW поддерживает только подмножество неявных преобразований, поддерживаемых SQL Server. Поэтому при использовании инструкции INSERT для загрузки данных в столбец распространения исходные данные должны быть указаны в одном из форматов, определенных в следующих таблицах.
Вставка литерала в двоичные типы
В следующей таблице определены принятые типы литералов, формат и правила преобразования для вставки литерального значения в столбец распределения двоичного типа (n) или varbinary(n).
Литеральный тип | Формат | Правила преобразования |
---|---|---|
Двоичный литерал | 0xhexidecimal_string Пример: 0x12Ef |
Двоичные литералы должны быть префиксированы с 0x. Длина источника данных не может превышать количество байтов, указанных для типа данных. Если длина источника данных меньше размера двоичного типа данных, данные заполняются справа от нуля, чтобы достичь размера типа данных. |
Вставка литерала в типы даты и времени
Литералы даты и времени представлены с помощью символьных значений в определенных форматах, заключенных в одинарные кавычки. В следующих таблицах определяются допустимые типы литералов, формат и правила преобразования для вставки литерала даты или времени в столбец распределения PDW SQL Server типа datetime, smalldatetime, date, time, datetimeoffset или datetime2.
Тип данных datetime
В следующей таблице определены принятые форматы и правила для вставки литеральных значений в столбец распределения даты и времени типа. Любая пустая строка (') преобразуется в значение по умолчанию "1900-01-01 12:00:00.000". Строки, содержащие только пустые (" ") создают ошибку.
Литеральный тип | Формат | Правила преобразования |
---|---|---|
Строковый литерал в формате datetime | 'ГГГГ-ММ-ДД чч:мм:сс[.nnn]' Пример: '2007-05-08 12:35:29.123' |
Отсутствующие дробные цифры имеют значение 0 при вставке значения. Например, литерал "2007-05-08 12:35" вставляется как "2007-05-08 12:35:00.000". |
Строковый литерал в формате smalldatetime | 'ГГГГ-ММ-ДД чч:мм' Пример: '2007-05-08 12:35' |
Секунды и оставшиеся дробные цифры имеют значение 0 при вставке значения. |
Строковый литерал в формате даты | 'ГГГГ-ММ-ДД' Пример: '2007-05-08' |
Значения времени (час, минуты, секунды и дроби) задаются в значение 12:00:00.000 при вставке значения. |
Строковый литерал в формате datetime2 | 'ГГГГ-ММ-ДД чч:мм:ss.nnnnnnnnnnn' Пример: '2007-05-08 12:35:29.1234567' |
Исходные данные не могут превышать три дробных цифры. Например, будет вставлен литерал "2007-05-08 12:35:29.123", но значение "2007-05-08 12:35:29.1234567" создает ошибку. |
Тип данных smalldatetime
В следующей таблице определены принятые форматы и правила для вставки литеральных значений в столбец распределения типа smalldatetime. Любая пустая строка (') преобразуется в значение по умолчанию "1900-01-01 12:00". Строки, содержащие только пустые (" ") создают ошибку.
Литеральный тип | Формат | Правила преобразования |
---|---|---|
Строковый литерал в формате smalldatetime | 'ГГГГ-ММ-ДД чч:мм' или 'ГГГГ-ММ-ДД чч:мм:00' Пример: "2007-05-08 12:00" или "2007-05-08 12:00:00" |
Исходные данные должны иметь значения в течение года, месяца, даты, часа и минуты. Секунды являются необязательными и, если они присутствуют, должны иметь значение 00. Любое другое значение создает ошибку. |
Строковый литерал в формате даты | 'ГГГГ-ММ-ДД' Пример: '2007-05-08' |
Значения времени (час, минуты, секунды и дроби) имеют значение 0 при вставке значения. |
Тип данных date
В следующей таблице определены принятые форматы и правила для вставки литеральных значений в столбец типа типа. Любая пустая строка (') преобразуется в значение по умолчанию "1900-01-01". Строки, содержащие только пустые (" ") создают ошибку.
Литеральный тип | Формат | Правила преобразования |
---|---|---|
Строковый литерал в формате даты | 'ГГГГ-ММ-ДД' Пример: '2007-05-08' |
Это единственный допустимый формат. |
Тип данных времени
В следующей таблице определены принятые форматы и правила для вставки литеральных значений в столбец распределения времени типа. Любая пустая строка (') преобразуется в значение по умолчанию "00:00:00.0000". Строки, содержащие только пустые (" ") создают ошибку.
Литеральный тип | Формат | Правила преобразования |
---|---|---|
Строковый литерал в формате времени | 'hh:mm:ss.nnnnnnnnn' Пример: '12:35:29.1234567' |
Если источник данных имеет меньшую или равную точность (число дробных цифр), чем точность типа данных времени , данные будут заполнены справа с нулями. Например, литеральное значение "12:35:29.123" вставляется как "12:35:29.1230000". Значение, которое имеет большую точность, чем целевой тип данных, отклоняется. |
Тип данных datetimeoffset
В следующей таблице определены принятые форматы и правила для вставки литеральных значений в столбец распределения типа datetimeoffset (n). Формат по умолчанию — YYYY-MM-DD hh:mm:ss.nnnnn {+|-}hh:mm. Пустая строка (') преобразуется в значение по умолчанию "1900-01-01 12:00:00.0000000 +00:00".. Строки, содержащие только пустые (" ") создают ошибку. Количество дробных цифр зависит от определения столбца. Например, столбец, определенный как datetimeoffset (2), будет иметь две дробные цифры.
Литеральный тип | Формат | Правила преобразования |
---|---|---|
Строковый литерал в формате datetime | 'ГГГГ-ММ-ДД чч:мм:сс[.nnn]' Пример: '2007-05-08 12:35:29.123' |
Отсутствующие дробные цифры и значения смещения имеют значение 0 при вставке значения. Например, литерал "2007-05-08 12:35:29.123" вставляется как "2007-05-08 12:35:29.123000000 +00:00". |
Строковый литерал в формате smalldatetime | 'ГГГГ-ММ-ДД чч:мм' Пример: '2007-05-08 12:35' |
В секундах остальные дробные цифры и значения смещения имеют значение 0 при вставке значения. |
Строковый литерал в формате даты | 'ГГГГ-ММ-ДД' Пример: '2007-05-08' |
Значения времени (час, минуты, секунды и дроби) имеют значение 0 при вставке значения. Например, литерал "2007-05-08" вставляется как "2007-05-08 00:00:0000000 +000:000". |
Строковый литерал в формате datetime2 | 'ГГГГ-ММ-ДД чч:мм:ss.nnnnnnnnnnn' Пример: '2007-05-08 12:35:29.1234567' |
Исходные данные не могут превышать указанное количество дробных секунд в столбце datetimeoffset. Если источник данных имеет меньшее или равное количество дробных секунд, данные заполняются справа с нулями. Например, если тип данных — datetimeoffset (5), то литеральное значение "2007-05-08 12:35:29.123 +12:15" вставляется как "12:35:29.12300 +12:15". |
Строковый литерал в формате datetimeoffset | 'ГГГГ-ММ-ДД чч:мм:ss.nnnnn {+|-} hh:mm' Пример: '2007-05-08 12:35:29.1234567 +12:15' |
Исходные данные не могут превышать указанное количество дробных секунд в столбце datetimeoffset. Если источник данных имеет меньшее или равное количество дробных секунд, данные заполняются справа с нулями. Например, если тип данных — datetimeoffset (5), то литеральное значение "2007-05-08 12:35:29.123 +12:15" вставляется как "12:35:29.12300 +12:15". |
Тип данных datetime2
В следующей таблице определены принятые форматы и правила для вставки литеральных значений в столбец распределения типа datetime2 (n). Формат по умолчанию — YYYY-MM-DD hh:mm:ss.nnnnnnn. Пустая строка (') преобразуется в значение по умолчанию "1900-01-01 12:00:00". Строки, содержащие только пустые (" ") создают ошибку. Количество дробных цифр зависит от определения столбца. Например, столбец, определенный как datetime2 (2), будет иметь две дробные цифры.
Литеральный тип | Формат | Правила преобразования |
---|---|---|
Строковый литерал в формате datetime | 'ГГГГ-ММ-ДД чч:мм:сс[.nnn]' Пример: '2007-05-08 12:35:29.123' |
Дробные секунды являются необязательными и имеют значение 0 при вставке значения. Значение, которое имеет более дробные цифры, чем целевой тип данных, отклоняется. |
Строковый литерал в формате smalldatetime | 'ГГГГ-ММ-ДД чч:мм' Пример: '2007-05-08 12' |
Необязательные секунды и оставшиеся дробные цифры имеют значение 0 при вставке значения. |
Строковый литерал в формате даты | 'ГГГГ-ММ-ДД' Пример: '2007-05-08' |
Значения времени (час, минуты, секунды и дроби) имеют значение 0 при вставке значения. Например, литерал "2007-05-08" вставляется как "2007-05-08 12:00:00000000". |
Строковый литерал в формате datetime2 | 'ГГГГ-ММ-ДД чч:мм:сс:nnnnnnnnn' Пример: '2007-05-08 12:35:29.1234567' |
Если источник данных содержит данные и компоненты времени, которые меньше или равны значению, указанному в datetime2(n), данные вставляются; в противном случае возникает ошибка. |
Вставка литерала в числовые типы
В следующих таблицах определяются принятые форматы и правила преобразования для вставки литерального значения в столбец распределения PDW SQL Server, использующий числовый тип.
bit, тип данных
В следующей таблице определены принятые форматы и правила для вставки литеральных значений в столбец распределения бита типа. Пустая строка (') или строка, содержащая только пустые (" ") преобразуется в 0.
Литеральный тип | format | Правила преобразования |
---|---|---|
Строковый литерал в целочисленном формате | 'nnnnnnnnnnnnnn' Пример: "1" или "321" |
Целочисленное значение, отформатируемое как строковый литерал, не может содержать отрицательное значение. Например, значение "-123" создает ошибку. Значение, превышающее 1, преобразуется в 1. Например, значение "123" преобразуется в 1. |
Строковый литерал | "TRUE" или "FALSE" Пример: true |
Значение TRUE преобразуется в 1; Значение FALSE преобразуется в 0. |
Целочисленный литерал | nnnnnn Пример: 1 или 321 |
Значение больше 1 или меньше 0 преобразуется в 1. Например, значения 123 и -123 преобразуются в 1. |
Десятичный литерал | nnnnn.nn Пример: 1234.5678 |
Значение больше 1 или меньше 0 преобразуется в 1. Например, значения 123.45 и -123.45 преобразуются в 1. |
тип данных decimal
В следующей таблице определены принятые форматы и правила для вставки литеральных значений в столбец распределения десятичного типа (p,s). Правила преобразования данных совпадают с правилами sql Server. Дополнительные сведения см. в разделе "Преобразование типов данных" в MSDN.
Литеральный тип | Формат |
---|---|
Строковый литерал в целочисленном формате | 'nnnnnnnnnnnnnn' Пример: "321312313123" |
Строковый литерал в десятичном формате | 'nn.nnnnn' Пример: '123344.34455' |
Целочисленный литерал | nnnnnnnn Пример: 321312313123 |
Десятичный литерал | nn.nnn Пример: '123344.34455' |
Типы данных float и real
В следующей таблице определены принятые форматы и правила для вставки литеральных значений в столбец распределения типа float или real. Правила преобразования данных совпадают с правилами sql Server. Дополнительные сведения см. в разделе "Преобразование типов данных" в MSDN.
Литеральный тип | Формат |
---|---|
Строковый литерал в целочисленном формате | 'nnnnnnnnnnnnnn' Пример: "321312313123" |
Строковый литерал в десятичном формате | 'nn.nnnnn' Пример: '123344.34455' |
Строковый литерал в формате с плавающей запятой | 'n.nnnnnE+nn' Пример: '3.12323E+14' |
Целочисленный литерал | nnnnnnnn Пример: 321312313123 |
Десятичный литерал | nn.nnn Пример: 123344.34455 |
Литерал с плавающей запятой | n.nnnnnE+nn Пример: 3.12323E+14 |
int, bigint, tinyint, smallint data types
В следующей таблице определены принятые форматы и правила для вставки литеральных значений в столбец распределения типа int, bigint, tinyint или smallint. Источник данных не может превышать диапазон, допустимый для заданного типа данных. Например, диапазон для tinyint составляет от 0 до 255, а диапазон для int равен -2 147 483 648 до 2 147 483 647.
Тип литерала | Формат | Правила преобразования |
---|---|---|
Строковый литерал в целочисленном формате | 'nn' Пример: "321312313123" |
None |
Целочисленный литерал | nn Пример: 321312313123 |
None |
Десятичный литерал | nn.nnn Пример: 123344.34455 |
Значения справа от десятичной запятой усечены. |
Типы данных money и smallmoney
Денежные литеральные значения представлены в виде чисел с необязательной десятичной запятой и символом валюты в виде префикса. Источник данных не может превышать диапазон, допустимый для заданного типа данных. Например, диапазон для небольших денег составляет -214 748,3648 до 214 748,3647, а диапазон для денег составляет -922 337 203 685 477,5808 до 922 337 203 685 477,5807. В следующей таблице определены принятые форматы и правила для вставки литеральных значений в столбец распределения типа money или smallmoney.
Литеральный тип | Формат | Правила преобразования |
---|---|---|
Строковый литерал в целочисленном формате | 'nnnnnnnnnn' Пример: "123433" |
Отсутствующие цифры после десятичной запятой имеют значение 0 при вставке значения. Например, литерал 12345 вставляется как 12345,0000. |
Строковый литерал в десятичном формате | 'nn.nnnnn' Пример: '123344.34455' |
Если число цифр после десятичной запятой превышает 4, значение округляется до ближайшего значения. Например, значение 1233444.34455 вставляется как 1233444.3446. |
Строковый литерал в формате денег | '$nnnnnn.nnnn' Пример: '$123456.7890' |
Необязательный символ валюты не вставляется со значением. Если число цифр после десятичной запятой превышает 4, значение округляется до ближайшего значения. |
Целочисленный литерал | nnnnnn Пример: 123433 |
Отсутствующие цифры после десятичной запятой имеют значение 0 при вставке значения. Например, литерал 12345 вставляется как 12345,0000. |
Десятичный литерал | nn.nnn Пример: 123344.34455 |
Если число цифр после десятичной запятой превышает 4, значение округляется до ближайшего значения. Например, значение 1233444.34455 вставляется как 1233444.3446. |
Деньги литерал | $nnnnnn.nnnn Пример: $123456,7890 |
Необязательный символ валюты не вставляется со значением. Если число цифр после десятичной запятой превышает 4, значение округляется до ближайшего значения. |
Вставка литерала в типы строк
В следующих таблицах определяются принятые форматы и правила преобразования для вставки литерального значения в столбец PDW SQL Server, использующий строковый тип.
char, varchar, nchar и nvarchar data types
В следующей таблице определены принятые форматы и правила для вставки литеральных значений в столбец распределения типа char, varchar, nchar и nvarchar. Длина источника данных не может превышать размер, указанный для типа данных. Если длина источника данных меньше размера типа данных char или nchar , данные заполняются справа с пустыми пробелами, чтобы достичь размера типа данных.
Тип литерала | Формат | Правила преобразования |
---|---|---|
Строковый литерал | Формат: символьная строка Пример: abc |
None |
Строковый литерал Юникода | Формат: N'символьная строка' Пример: N'abc' |
None |
Целочисленный литерал | Формат: nnnnnnn Пример: 321312313123 |
None |
Десятичный литерал | Формат: nn.nnnnnnnnn Пример: 12344.34455 |
None |
Деньги литерал | Формат: $nnnnnn.nnnnn Пример: $123456.99 |
Символ валюты не вставляется со значением. Чтобы вставить символ валюты, вставьте значение в виде строкового литерала. Это будет соответствовать формату средства dwloader , который обрабатывает каждый литерал как строковый литерал. Запятые не допускаются. Если число цифр после десятичной запятой превышает 2, значение округляется до ближайшего значения. Например, значение 123.946789 вставляется как 123.95. Только стиль по умолчанию 0 (без запятых и 2 цифры после десятичной запятой) допускается при использовании функции CONVERT для вставки денежных литералы. |