{ "metadata": { "kernelspec": { "name": "SQL", "display_name": "SQL", "language": "sql" }, "language_info": { "name": "sql", "version": "" } }, "nbformat_minor": 2, "nbformat": 4, "cells": [ { "cell_type": "markdown", "source": "# Determine the UTF8 storage requirements for all tables and string columns in the database in scope", "metadata": {} }, { "cell_type": "markdown", "source": "The script below will determine the UTF8 storage requirements for all tables and string columns in the database in scope, and whether the defined data type length has to be changed when converting to UTF-8. The result will show the table and column names that map to CHAR, NCHAR, VARCHAR, and NVARCHAR data types (including UDTs), their current type size definition, actual byte size, and projected byte size once encoded into UTF-8. \r\n\r\nFor example, for the column **EmailAddress** of table **Application.People**, the data type definition is **nvarchar(512)** and the data length for the largest string found in that column is 66 bytes. If changed to **varchar(512)** under a ***_UTF8*** collation, the data length would be reduced to 33 bytes. In this case, converting the column's collation and data type (without changing the size definition) will not cause data loss. \r\n\r\nHowever, if the projected byte size for the column using UTF-8 would be larger than the current data type definition, then the defined data type length would also have to be enlarged. For example, if a column were defined originally as **nvarchar(100)**1, and projected byte size for the column in UTF-8 would be 120, then changing the column type to a **varchar(100)**2 would result in data loss. The column would have to be defined at least as **varchar(120)**.\r\n\r\n1 Expresses byte-pairs, meaning the column is capable of storing up to 200 bytes of information \r\n2 Expresses bytes, meaning the column is capable of storing up to 100 bytes of information", "metadata": {} }, { "cell_type": "code", "source": "SET NOCOUNT ON;\r\nGO\r\n\r\nUSE WideWorldImporters\r\nGO\r\n\r\nDROP TABLE IF EXISTS #tmpObjects;\r\nGO\r\n\r\nCREATE TABLE #tmpObjects (ObjectName sysname, \r\n\tColumnName sysname, \r\n\tColumnType sysname, \r\n\tDefinedTypeSize smallint, \r\n\tActualMaxBytes smallint,\r\n\tUTF8BytesNeeded smallint,\r\n\t[isdone] bit,\r\n CONSTRAINT PK_ObjName_ColName\r\n PRIMARY KEY NONCLUSTERED (ObjectName, ColumnName)\r\n\t\tWITH (IGNORE_DUP_KEY = ON)\r\n\t);\r\n\r\nINSERT INTO #tmpObjects\r\nSELECT QUOTENAME(SS.[name]) + '.' + QUOTENAME(STbl.[name]), QUOTENAME(SC.[name]), ST.[name], SC.max_length, NULL, NULL, 0\r\nFROM sys.columns AS SC\r\nINNER JOIN sys.types AS ST ON SC.user_type_id = ST.user_type_id\r\nINNER JOIN sys.tables AS STbl ON STbl.[object_id] = SC.[object_id]\r\nINNER JOIN sys.schemas AS SS ON STbl.[schema_id] = SS.[schema_id]\r\nWHERE STbl.[type] = 'U' \r\n\tAND STbl.is_ms_shipped = 0\r\n\t--AND STbl.temporal_type IN (0,1)\r\n\tAND ST.system_type_id IN (167, 175, 231, 239)\r\n\tAND ST.[name] <> 'sysname'\r\n\tAND SC.is_hidden = 0\r\n\tAND SC.max_length > 0;\r\n\r\nDECLARE @OName sysname, @CName sysname, @CurrBytes smallint, @UTF8Bytes smallint, @sqlcmd NVARCHAR(4000), @params NVARCHAR(60), @cnt int, @maxcnt int\r\n\r\nSELECT @maxcnt = COUNT(*) FROM #tmpObjects;\r\nSET @cnt = 0 \r\nSET @params = '@CurrBytesOut smallint OUTPUT, @UTF8BytesOut smallint OUTPUT'\r\n\r\nWHILE @cnt < @maxcnt\r\nBEGIN\r\n\tSELECT TOP 1 @OName = ObjectName, @CName = ColumnName FROM #tmpObjects WHERE isdone = 0\r\n\tSELECT @sqlcmd = 'SELECT @CurrBytesOut = MAX(DATALENGTH(' + @CName + ')), @UTF8BytesOut = MAX(DATALENGTH(CAST(' + @CName + ' AS VARCHAR(4000)) COLLATE Latin1_General_100_CI_AI_SC_UTF8)) FROM ' + @OName + ' WITH (NOLOCK)'; \r\n\r\n\tEXEC sp_executesql @sqlcmd, @params, @CurrBytesOut = @CurrBytes OUTPUT, @UTF8BytesOut = @UTF8Bytes OUTPUT\r\n\r\n\tUPDATE #tmpObjects\r\n\tSET ActualMaxBytes = @CurrBytes, UTF8BytesNeeded = @UTF8Bytes, isdone = 1 \r\n\tWHERE ObjectName = @OName AND ColumnName = @CName\r\n\r\n\tSET @cnt = @cnt + 1\r\nEND;\r\n\r\nSELECT * FROM #tmpObjects;", "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/html": "Commands completed successfully." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Total execution time: 00:00:00.0028408" }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Commands completed successfully." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Total execution time: 00:00:00.0015389" }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Commands completed successfully." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Total execution time: 00:00:00.0048617" }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Warning: Null value is eliminated by an aggregate or other SET operation." }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": "Total execution time: 00:00:01.1670323" }, "metadata": {} }, { "output_type": "execute_result", "execution_count": 7, "data": { "application/vnd.dataresource+json": { "schema": { "fields": [ { "name": "ObjectName" }, { "name": "ColumnName" }, { "name": "ColumnType" }, { "name": "DefinedTypeSize" }, { "name": "ActualMaxBytes" }, { "name": "UTF8BytesNeeded" }, { "name": "isdone" } ] }, "data": [ { "0": "[Application].[Cities]", "1": "[CityName]", "2": "nvarchar", "3": "100", "4": "70", "5": "35", "6": "1" }, { "0": "[Application].[Cities_Archive]", "1": "[CityName]", "2": "nvarchar", "3": "100", "4": "32", "5": "16", "6": "1" }, { "0": "[Application].[Countries]", "1": "[Continent]", "2": "nvarchar", "3": "60", "4": "46", "5": "23", "6": "1" }, { "0": "[Application].[Countries]", "1": "[CountryName]", "2": "nvarchar", "3": "120", "4": "42", "5": "23", "6": "1" }, { "0": "[Application].[Countries]", "1": "[CountryType]", "2": "nvarchar", "3": "40", "4": "30", "5": "15", "6": "1" }, { "0": "[Application].[Countries]", "1": "[FormalName]", "2": "nvarchar", "3": "120", "4": "104", "5": "52", "6": "1" }, { "0": "[Application].[Countries]", "1": "[IsoAlpha3Code]", "2": "nvarchar", "3": "6", "4": "6", "5": "3", "6": "1" }, { "0": "[Application].[Countries]", "1": "[Region]", "2": "nvarchar", "3": "60", "4": "16", "5": "8", "6": "1" }, { "0": "[Application].[Countries]", "1": "[Subregion]", "2": "nvarchar", "3": "60", "4": "50", "5": "25", "6": "1" }, { "0": "[Application].[Countries_Archive]", "1": "[Continent]", "2": "nvarchar", "3": "60", "4": "26", "5": "13", "6": "1" }, { "0": "[Application].[Countries_Archive]", "1": "[CountryName]", "2": "nvarchar", "3": "120", "4": "36", "5": "18", "6": "1" }, { "0": "[Application].[Countries_Archive]", "1": "[CountryType]", "2": "nvarchar", "3": "40", "4": "30", "5": "15", "6": "1" }, { "0": "[Application].[Countries_Archive]", "1": "[FormalName]", "2": "nvarchar", "3": "120", "4": "74", "5": "37", "6": "1" }, { "0": "[Application].[Countries_Archive]", "1": "[IsoAlpha3Code]", "2": "nvarchar", "3": "6", "4": "6", "5": "3", "6": "1" }, { "0": "[Application].[Countries_Archive]", "1": "[Region]", "2": "nvarchar", "3": "60", "4": "16", "5": "8", "6": "1" }, { "0": "[Application].[Countries_Archive]", "1": "[Subregion]", "2": "nvarchar", "3": "60", "4": "50", "5": "25", "6": "1" }, { "0": "[Application].[DeliveryMethods]", "1": "[DeliveryMethodName]", "2": "nvarchar", "3": "100", "4": "54", "5": "27", "6": "1" }, { "0": "[Application].[DeliveryMethods_Archive]", "1": "[DeliveryMethodName]", "2": "nvarchar", "3": "100", "4": "32", "5": "16", "6": "1" }, { "0": "[Application].[PaymentMethods]", "1": "[PaymentMethodName]", "2": "nvarchar", "3": "100", "4": "22", "5": "11", "6": "1" }, { "0": "[Application].[PaymentMethods_Archive]", "1": "[PaymentMethodName]", "2": "nvarchar", "3": "100", "4": "22", "5": "11", "6": "1" }, { "0": "[Application].[People]", "1": "[EmailAddress]", "2": "nvarchar", "3": "512", "4": "66", "5": "33", "6": "1" }, { "0": "[Application].[People]", "1": "[FaxNumber]", "2": "nvarchar", "3": "40", "4": "28", "5": "14", "6": "1" }, { "0": "[Application].[People]", "1": "[FullName]", "2": "nvarchar", "3": "100", "4": "58", "5": "29", "6": "1" }, { "0": "[Application].[People]", "1": "[LogonName]", "2": "nvarchar", "3": "100", "4": "64", "5": "32", "6": "1" }, { "0": "[Application].[People]", "1": "[PhoneNumber]", "2": "nvarchar", "3": "40", "4": "28", "5": "14", "6": "1" }, { "0": "[Application].[People]", "1": "[PreferredName]", "2": "nvarchar", "3": "100", "4": "40", "5": "20", "6": "1" }, { "0": "[Application].[People]", "1": "[SearchName]", "2": "nvarchar", "3": "202", "4": "92", "5": "46", "6": "1" }, { "0": "[Application].[People_Archive]", "1": "[EmailAddress]", "2": "nvarchar", "3": "512", "4": "66", "5": "33", "6": "1" }, { "0": "[Application].[People_Archive]", "1": "[FaxNumber]", "2": "nvarchar", "3": "40", "4": "28", "5": "14", "6": "1" }, { "0": "[Application].[People_Archive]", "1": "[FullName]", "2": "nvarchar", "3": "100", "4": "46", "5": "23", "6": "1" }, { "0": "[Application].[People_Archive]", "1": "[LogonName]", "2": "nvarchar", "3": "100", "4": "64", "5": "32", "6": "1" }, { "0": "[Application].[People_Archive]", "1": "[PhoneNumber]", "2": "nvarchar", "3": "40", "4": "28", "5": "14", "6": "1" }, { "0": "[Application].[People_Archive]", "1": "[PreferredName]", "2": "nvarchar", "3": "100", "4": "40", "5": "20", "6": "1" }, { "0": "[Application].[People_Archive]", "1": "[SearchName]", "2": "nvarchar", "3": "202", "4": "82", "5": "41", "6": "1" }, { "0": "[Application].[StateProvinces]", "1": "[SalesTerritory]", "2": "nvarchar", "3": "100", "4": "28", "5": "14", "6": "1" }, { "0": "[Application].[StateProvinces]", "1": "[StateProvinceCode]", "2": "nvarchar", "3": "10", "4": "4", "5": "2", "6": "1" }, { "0": "[Application].[StateProvinces]", "1": "[StateProvinceName]", "2": "nvarchar", "3": "100", "4": "58", "5": "29", "6": "1" }, { "0": "[Application].[StateProvinces_Archive]", "1": "[SalesTerritory]", "2": "nvarchar", "3": "100", "4": "28", "5": "14", "6": "1" }, { "0": "[Application].[StateProvinces_Archive]", "1": "[StateProvinceCode]", "2": "nvarchar", "3": "10", "4": "4", "5": "2", "6": "1" }, { "0": "[Application].[StateProvinces_Archive]", "1": "[StateProvinceName]", "2": "nvarchar", "3": "100", "4": "52", "5": "26", "6": "1" }, { "0": "[Application].[SystemParameters]", "1": "[DeliveryAddressLine1]", "2": "nvarchar", "3": "120", "4": "16", "5": "8", "6": "1" }, { "0": "[Application].[SystemParameters]", "1": "[DeliveryAddressLine2]", "2": "nvarchar", "3": "120", "4": "72", "5": "36", "6": "1" }, { "0": "[Application].[SystemParameters]", "1": "[DeliveryPostalCode]", "2": "nvarchar", "3": "20", "4": "10", "5": "5", "6": "1" }, { "0": "[Application].[SystemParameters]", "1": "[PostalAddressLine1]", "2": "nvarchar", "3": "120", "4": "26", "5": "13", "6": "1" }, { "0": "[Application].[SystemParameters]", "1": "[PostalAddressLine2]", "2": "nvarchar", "3": "120", "4": "32", "5": "16", "6": "1" }, { "0": "[Application].[SystemParameters]", "1": "[PostalPostalCode]", "2": "nvarchar", "3": "20", "4": "10", "5": "5", "6": "1" }, { "0": "[Application].[TransactionTypes]", "1": "[TransactionTypeName]", "2": "nvarchar", "3": "100", "4": "58", "5": "29", "6": "1" }, { "0": "[Application].[TransactionTypes_Archive]", "1": "[TransactionTypeName]", "2": "nvarchar", "3": "100", "4": "12", "5": "6", "6": "1" }, { "0": "[Purchasing].[PurchaseOrderLines]", "1": "[Description]", "2": "nvarchar", "3": "200", "4": "170", "5": "85", "6": "1" }, { "0": "[Purchasing].[PurchaseOrders]", "1": "[SupplierReference]", "2": "nvarchar", "3": "40", "4": "18", "5": "9", "6": "1" }, { "0": "[Purchasing].[SupplierCategories]", "1": "[SupplierCategoryName]", "2": "nvarchar", "3": "100", "4": "54", "5": "27", "6": "1" }, { "0": "[Purchasing].[SupplierCategories_Archive]", "1": "[SupplierCategoryName]", "2": "nvarchar", "3": "100", "4": "14", "5": "7", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[BankAccountBranch]", "2": "nvarchar", "3": "100", "4": "62", "5": "31", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[BankAccountCode]", "2": "nvarchar", "3": "40", "4": "12", "5": "6", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[BankAccountName]", "2": "nvarchar", "3": "100", "4": "48", "5": "24", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[BankAccountNumber]", "2": "nvarchar", "3": "40", "4": "20", "5": "10", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[BankInternationalCode]", "2": "nvarchar", "3": "40", "4": "10", "5": "5", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[DeliveryAddressLine1]", "2": "nvarchar", "3": "120", "4": "16", "5": "8", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[DeliveryAddressLine2]", "2": "nvarchar", "3": "120", "4": "52", "5": "26", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[DeliveryPostalCode]", "2": "nvarchar", "3": "20", "4": "10", "5": "5", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[FaxNumber]", "2": "nvarchar", "3": "40", "4": "28", "5": "14", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[PhoneNumber]", "2": "nvarchar", "3": "40", "4": "28", "5": "14", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[PostalAddressLine1]", "2": "nvarchar", "3": "120", "4": "24", "5": "12", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[PostalAddressLine2]", "2": "nvarchar", "3": "120", "4": "20", "5": "10", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[PostalPostalCode]", "2": "nvarchar", "3": "20", "4": "10", "5": "5", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[SupplierName]", "2": "nvarchar", "3": "200", "4": "48", "5": "24", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[SupplierReference]", "2": "nvarchar", "3": "40", "4": "22", "5": "11", "6": "1" }, { "0": "[Purchasing].[Suppliers]", "1": "[WebsiteURL]", "2": "nvarchar", "3": "512", "4": "74", "5": "37", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[BankAccountBranch]", "2": "nvarchar", "3": "100", "4": "62", "5": "31", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[BankAccountCode]", "2": "nvarchar", "3": "40", "4": "12", "5": "6", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[BankAccountName]", "2": "nvarchar", "3": "100", "4": "48", "5": "24", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[BankAccountNumber]", "2": "nvarchar", "3": "40", "4": "20", "5": "10", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[BankInternationalCode]", "2": "nvarchar", "3": "40", "4": "10", "5": "5", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[DeliveryAddressLine1]", "2": "nvarchar", "3": "120", "4": "16", "5": "8", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[DeliveryAddressLine2]", "2": "nvarchar", "3": "120", "4": "52", "5": "26", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[DeliveryPostalCode]", "2": "nvarchar", "3": "20", "4": "10", "5": "5", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[FaxNumber]", "2": "nvarchar", "3": "40", "4": "28", "5": "14", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[PhoneNumber]", "2": "nvarchar", "3": "40", "4": "28", "5": "14", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[PostalAddressLine1]", "2": "nvarchar", "3": "120", "4": "24", "5": "12", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[PostalAddressLine2]", "2": "nvarchar", "3": "120", "4": "20", "5": "10", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[PostalPostalCode]", "2": "nvarchar", "3": "20", "4": "10", "5": "5", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[SupplierName]", "2": "nvarchar", "3": "200", "4": "48", "5": "24", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[SupplierReference]", "2": "nvarchar", "3": "40", "4": "22", "5": "11", "6": "1" }, { "0": "[Purchasing].[Suppliers_Archive]", "1": "[WebsiteURL]", "2": "nvarchar", "3": "512", "4": "74", "5": "37", "6": "1" }, { "0": "[Purchasing].[SupplierTransactions]", "1": "[SupplierInvoiceNumber]", "2": "nvarchar", "3": "40", "4": "8", "5": "4", "6": "1" }, { "0": "[Sales].[BuyingGroups]", "1": "[BuyingGroupName]", "2": "nvarchar", "3": "100", "4": "26", "5": "13", "6": "1" }, { "0": "[Sales].[BuyingGroups_Archive]", "1": "[BuyingGroupName]", "2": "nvarchar", "3": "100", "4": "NULL", "5": "NULL", "6": "1" }, { "0": "[Sales].[CustomerCategories]", "1": "[CustomerCategoryName]", "2": "nvarchar", "3": "100", "4": "32", "5": "16", "6": "1" }, { "0": "[Sales].[CustomerCategories_Archive]", "1": "[CustomerCategoryName]", "2": "nvarchar", "3": "100", "4": "16", "5": "8", "6": "1" }, { "0": "[Sales].[Customers]", "1": "[CustomerName]", "2": "nvarchar", "3": "200", "4": "76", "5": "38", "6": "1" }, { "0": "[Sales].[Customers]", "1": "[DeliveryAddressLine1]", "2": "nvarchar", "3": "120", "4": "18", "5": "9", "6": "1" }, { "0": "[Sales].[Customers]", "1": "[DeliveryAddressLine2]", "2": "nvarchar", "3": "120", "4": "52", "5": "26", "6": "1" }, { "0": "[Sales].[Customers]", "1": "[DeliveryPostalCode]", "2": "nvarchar", "3": "20", "4": "10", "5": "5", "6": "1" }, { "0": "[Sales].[Customers]", "1": "[DeliveryRun]", "2": "nvarchar", "3": "10", "4": "0", "5": "0", "6": "1" }, { "0": "[Sales].[Customers]", "1": "[FaxNumber]", "2": "nvarchar", "3": "40", "4": "28", "5": "14", "6": "1" }, { "0": "[Sales].[Customers]", "1": "[PhoneNumber]", "2": "nvarchar", "3": "40", "4": "28", "5": "14", "6": "1" }, { "0": "[Sales].[Customers]", "1": "[PostalAddressLine1]", "2": "nvarchar", "3": "120", "4": "22", "5": "11", "6": "1" }, { "0": "[Sales].[Customers]", "1": "[PostalAddressLine2]", "2": "nvarchar", "3": "120", "4": "42", "5": "21", "6": "1" }, { "0": "[Sales].[Customers]", "1": "[PostalPostalCode]", "2": "nvarchar", "3": "20", "4": "10", "5": "5", "6": "1" }, { "0": "[Sales].[Customers]", "1": "[RunPosition]", "2": "nvarchar", "3": "10", "4": "0", "5": "0", "6": "1" }, { "0": "[Sales].[Customers]", "1": "[WebsiteURL]", "2": "nvarchar", "3": "512", "4": "104", "5": "52", "6": "1" }, { "0": "[Sales].[Customers_Archive]", "1": "[CustomerName]", "2": "nvarchar", "3": "200", "4": "46", "5": "23", "6": "1" }, { "0": "[Sales].[Customers_Archive]", "1": "[DeliveryAddressLine1]", "2": "nvarchar", "3": "120", "4": "16", "5": "8", "6": "1" }, { "0": "[Sales].[Customers_Archive]", "1": "[DeliveryAddressLine2]", "2": "nvarchar", "3": "120", "4": "48", "5": "24", "6": "1" }, { "0": "[Sales].[Customers_Archive]", "1": "[DeliveryPostalCode]", "2": "nvarchar", "3": "20", "4": "10", "5": "5", "6": "1" }, { "0": "[Sales].[Customers_Archive]", "1": "[DeliveryRun]", "2": "nvarchar", "3": "10", "4": "0", "5": "0", "6": "1" }, { "0": "[Sales].[Customers_Archive]", "1": "[FaxNumber]", "2": "nvarchar", "3": "40", "4": "28", "5": "14", "6": "1" }, { "0": "[Sales].[Customers_Archive]", "1": "[PhoneNumber]", "2": "nvarchar", "3": "40", "4": "28", "5": "14", "6": "1" }, { "0": "[Sales].[Customers_Archive]", "1": "[PostalAddressLine1]", "2": "nvarchar", "3": "120", "4": "22", "5": "11", "6": "1" }, { "0": "[Sales].[Customers_Archive]", "1": "[PostalAddressLine2]", "2": "nvarchar", "3": "120", "4": "34", "5": "17", "6": "1" }, { "0": "[Sales].[Customers_Archive]", "1": "[PostalPostalCode]", "2": "nvarchar", "3": "20", "4": "10", "5": "5", "6": "1" }, { "0": "[Sales].[Customers_Archive]", "1": "[RunPosition]", "2": "nvarchar", "3": "10", "4": "0", "5": "0", "6": "1" }, { "0": "[Sales].[Customers_Archive]", "1": "[WebsiteURL]", "2": "nvarchar", "3": "512", "4": "96", "5": "48", "6": "1" }, { "0": "[Sales].[InvoiceLines]", "1": "[Description]", "2": "nvarchar", "3": "200", "4": "170", "5": "85", "6": "1" }, { "0": "[Sales].[Invoices]", "1": "[ConfirmedReceivedBy]", "2": "nvarchar", "3": "8000", "4": "58", "5": "29", "6": "1" }, { "0": "[Sales].[Invoices]", "1": "[CustomerPurchaseOrderNumber]", "2": "nvarchar", "3": "40", "4": "10", "5": "5", "6": "1" }, { "0": "[Sales].[Invoices]", "1": "[DeliveryRun]", "2": "nvarchar", "3": "10", "4": "0", "5": "0", "6": "1" }, { "0": "[Sales].[Invoices]", "1": "[RunPosition]", "2": "nvarchar", "3": "10", "4": "0", "5": "0", "6": "1" }, { "0": "[Sales].[OrderLines]", "1": "[Description]", "2": "nvarchar", "3": "200", "4": "170", "5": "85", "6": "1" }, { "0": "[Sales].[Orders]", "1": "[CustomerPurchaseOrderNumber]", "2": "nvarchar", "3": "40", "4": "10", "5": "5", "6": "1" }, { "0": "[Sales].[SpecialDeals]", "1": "[DealDescription]", "2": "nvarchar", "3": "60", "4": "48", "5": "24", "6": "1" }, { "0": "[Warehouse].[Colors]", "1": "[ColorName]", "2": "nvarchar", "3": "40", "4": "22", "5": "11", "6": "1" }, { "0": "[Warehouse].[Colors_Archive]", "1": "[ColorName]", "2": "nvarchar", "3": "40", "4": "8", "5": "4", "6": "1" }, { "0": "[Warehouse].[PackageTypes]", "1": "[PackageTypeName]", "2": "nvarchar", "3": "100", "4": "12", "5": "6", "6": "1" }, { "0": "[Warehouse].[PackageTypes_Archive]", "1": "[PackageTypeName]", "2": "nvarchar", "3": "100", "4": "NULL", "5": "NULL", "6": "1" }, { "0": "[Warehouse].[StockGroups]", "1": "[StockGroupName]", "2": "nvarchar", "3": "100", "4": "38", "5": "19", "6": "1" }, { "0": "[Warehouse].[StockGroups_Archive]", "1": "[StockGroupName]", "2": "nvarchar", "3": "100", "4": "16", "5": "8", "6": "1" }, { "0": "[Warehouse].[StockItemHoldings]", "1": "[BinLocation]", "2": "nvarchar", "3": "40", "4": "8", "5": "4", "6": "1" }, { "0": "[Warehouse].[StockItems]", "1": "[Barcode]", "2": "nvarchar", "3": "100", "4": "26", "5": "13", "6": "1" }, { "0": "[Warehouse].[StockItems]", "1": "[Brand]", "2": "nvarchar", "3": "100", "4": "18", "5": "9", "6": "1" }, { "0": "[Warehouse].[StockItems]", "1": "[Size]", "2": "nvarchar", "3": "40", "4": "26", "5": "13", "6": "1" }, { "0": "[Warehouse].[StockItems]", "1": "[StockItemName]", "2": "nvarchar", "3": "200", "4": "170", "5": "85", "6": "1" }, { "0": "[Warehouse].[StockItems_Archive]", "1": "[Barcode]", "2": "nvarchar", "3": "100", "4": "26", "5": "13", "6": "1" }, { "0": "[Warehouse].[StockItems_Archive]", "1": "[Brand]", "2": "nvarchar", "3": "100", "4": "18", "5": "9", "6": "1" }, { "0": "[Warehouse].[StockItems_Archive]", "1": "[Size]", "2": "nvarchar", "3": "40", "4": "26", "5": "13", "6": "1" }, { "0": "[Warehouse].[StockItems_Archive]", "1": "[StockItemName]", "2": "nvarchar", "3": "200", "4": "170", "5": "85", "6": "1" }, { "0": "[Warehouse].[VehicleTemperatures]", "1": "[FullSensorData]", "2": "nvarchar", "3": "2000", "4": "392", "5": "196", "6": "1" }, { "0": "[Warehouse].[VehicleTemperatures]", "1": "[VehicleRegistration]", "2": "nvarchar", "3": "40", "4": "18", "5": "9", "6": "1" } ] }, "text/html": "
| ObjectName | ColumnName | ColumnType | DefinedTypeSize | ActualMaxBytes | UTF8BytesNeeded | isdone |
|---|---|---|---|---|---|---|
| [Application].[Cities] | [CityName] | nvarchar | 100 | 70 | 35 | 1 |
| [Application].[Cities_Archive] | [CityName] | nvarchar | 100 | 32 | 16 | 1 |
| [Application].[Countries] | [Continent] | nvarchar | 60 | 46 | 23 | 1 |
| [Application].[Countries] | [CountryName] | nvarchar | 120 | 42 | 23 | 1 |
| [Application].[Countries] | [CountryType] | nvarchar | 40 | 30 | 15 | 1 |
| [Application].[Countries] | [FormalName] | nvarchar | 120 | 104 | 52 | 1 |
| [Application].[Countries] | [IsoAlpha3Code] | nvarchar | 6 | 6 | 3 | 1 |
| [Application].[Countries] | [Region] | nvarchar | 60 | 16 | 8 | 1 |
| [Application].[Countries] | [Subregion] | nvarchar | 60 | 50 | 25 | 1 |
| [Application].[Countries_Archive] | [Continent] | nvarchar | 60 | 26 | 13 | 1 |
| [Application].[Countries_Archive] | [CountryName] | nvarchar | 120 | 36 | 18 | 1 |
| [Application].[Countries_Archive] | [CountryType] | nvarchar | 40 | 30 | 15 | 1 |
| [Application].[Countries_Archive] | [FormalName] | nvarchar | 120 | 74 | 37 | 1 |
| [Application].[Countries_Archive] | [IsoAlpha3Code] | nvarchar | 6 | 6 | 3 | 1 |
| [Application].[Countries_Archive] | [Region] | nvarchar | 60 | 16 | 8 | 1 |
| [Application].[Countries_Archive] | [Subregion] | nvarchar | 60 | 50 | 25 | 1 |
| [Application].[DeliveryMethods] | [DeliveryMethodName] | nvarchar | 100 | 54 | 27 | 1 |
| [Application].[DeliveryMethods_Archive] | [DeliveryMethodName] | nvarchar | 100 | 32 | 16 | 1 |
| [Application].[PaymentMethods] | [PaymentMethodName] | nvarchar | 100 | 22 | 11 | 1 |
| [Application].[PaymentMethods_Archive] | [PaymentMethodName] | nvarchar | 100 | 22 | 11 | 1 |
| [Application].[People] | [EmailAddress] | nvarchar | 512 | 66 | 33 | 1 |
| [Application].[People] | [FaxNumber] | nvarchar | 40 | 28 | 14 | 1 |
| [Application].[People] | [FullName] | nvarchar | 100 | 58 | 29 | 1 |
| [Application].[People] | [LogonName] | nvarchar | 100 | 64 | 32 | 1 |
| [Application].[People] | [PhoneNumber] | nvarchar | 40 | 28 | 14 | 1 |
| [Application].[People] | [PreferredName] | nvarchar | 100 | 40 | 20 | 1 |
| [Application].[People] | [SearchName] | nvarchar | 202 | 92 | 46 | 1 |
| [Application].[People_Archive] | [EmailAddress] | nvarchar | 512 | 66 | 33 | 1 |
| [Application].[People_Archive] | [FaxNumber] | nvarchar | 40 | 28 | 14 | 1 |
| [Application].[People_Archive] | [FullName] | nvarchar | 100 | 46 | 23 | 1 |
| [Application].[People_Archive] | [LogonName] | nvarchar | 100 | 64 | 32 | 1 |
| [Application].[People_Archive] | [PhoneNumber] | nvarchar | 40 | 28 | 14 | 1 |
| [Application].[People_Archive] | [PreferredName] | nvarchar | 100 | 40 | 20 | 1 |
| [Application].[People_Archive] | [SearchName] | nvarchar | 202 | 82 | 41 | 1 |
| [Application].[StateProvinces] | [SalesTerritory] | nvarchar | 100 | 28 | 14 | 1 |
| [Application].[StateProvinces] | [StateProvinceCode] | nvarchar | 10 | 4 | 2 | 1 |
| [Application].[StateProvinces] | [StateProvinceName] | nvarchar | 100 | 58 | 29 | 1 |
| [Application].[StateProvinces_Archive] | [SalesTerritory] | nvarchar | 100 | 28 | 14 | 1 |
| [Application].[StateProvinces_Archive] | [StateProvinceCode] | nvarchar | 10 | 4 | 2 | 1 |
| [Application].[StateProvinces_Archive] | [StateProvinceName] | nvarchar | 100 | 52 | 26 | 1 |
| [Application].[SystemParameters] | [DeliveryAddressLine1] | nvarchar | 120 | 16 | 8 | 1 |
| [Application].[SystemParameters] | [DeliveryAddressLine2] | nvarchar | 120 | 72 | 36 | 1 |
| [Application].[SystemParameters] | [DeliveryPostalCode] | nvarchar | 20 | 10 | 5 | 1 |
| [Application].[SystemParameters] | [PostalAddressLine1] | nvarchar | 120 | 26 | 13 | 1 |
| [Application].[SystemParameters] | [PostalAddressLine2] | nvarchar | 120 | 32 | 16 | 1 |
| [Application].[SystemParameters] | [PostalPostalCode] | nvarchar | 20 | 10 | 5 | 1 |
| [Application].[TransactionTypes] | [TransactionTypeName] | nvarchar | 100 | 58 | 29 | 1 |
| [Application].[TransactionTypes_Archive] | [TransactionTypeName] | nvarchar | 100 | 12 | 6 | 1 |
| [Purchasing].[PurchaseOrderLines] | [Description] | nvarchar | 200 | 170 | 85 | 1 |
| [Purchasing].[PurchaseOrders] | [SupplierReference] | nvarchar | 40 | 18 | 9 | 1 |
| [Purchasing].[SupplierCategories] | [SupplierCategoryName] | nvarchar | 100 | 54 | 27 | 1 |
| [Purchasing].[SupplierCategories_Archive] | [SupplierCategoryName] | nvarchar | 100 | 14 | 7 | 1 |
| [Purchasing].[Suppliers] | [BankAccountBranch] | nvarchar | 100 | 62 | 31 | 1 |
| [Purchasing].[Suppliers] | [BankAccountCode] | nvarchar | 40 | 12 | 6 | 1 |
| [Purchasing].[Suppliers] | [BankAccountName] | nvarchar | 100 | 48 | 24 | 1 |
| [Purchasing].[Suppliers] | [BankAccountNumber] | nvarchar | 40 | 20 | 10 | 1 |
| [Purchasing].[Suppliers] | [BankInternationalCode] | nvarchar | 40 | 10 | 5 | 1 |
| [Purchasing].[Suppliers] | [DeliveryAddressLine1] | nvarchar | 120 | 16 | 8 | 1 |
| [Purchasing].[Suppliers] | [DeliveryAddressLine2] | nvarchar | 120 | 52 | 26 | 1 |
| [Purchasing].[Suppliers] | [DeliveryPostalCode] | nvarchar | 20 | 10 | 5 | 1 |
| [Purchasing].[Suppliers] | [FaxNumber] | nvarchar | 40 | 28 | 14 | 1 |
| [Purchasing].[Suppliers] | [PhoneNumber] | nvarchar | 40 | 28 | 14 | 1 |
| [Purchasing].[Suppliers] | [PostalAddressLine1] | nvarchar | 120 | 24 | 12 | 1 |
| [Purchasing].[Suppliers] | [PostalAddressLine2] | nvarchar | 120 | 20 | 10 | 1 |
| [Purchasing].[Suppliers] | [PostalPostalCode] | nvarchar | 20 | 10 | 5 | 1 |
| [Purchasing].[Suppliers] | [SupplierName] | nvarchar | 200 | 48 | 24 | 1 |
| [Purchasing].[Suppliers] | [SupplierReference] | nvarchar | 40 | 22 | 11 | 1 |
| [Purchasing].[Suppliers] | [WebsiteURL] | nvarchar | 512 | 74 | 37 | 1 |
| [Purchasing].[Suppliers_Archive] | [BankAccountBranch] | nvarchar | 100 | 62 | 31 | 1 |
| [Purchasing].[Suppliers_Archive] | [BankAccountCode] | nvarchar | 40 | 12 | 6 | 1 |
| [Purchasing].[Suppliers_Archive] | [BankAccountName] | nvarchar | 100 | 48 | 24 | 1 |
| [Purchasing].[Suppliers_Archive] | [BankAccountNumber] | nvarchar | 40 | 20 | 10 | 1 |
| [Purchasing].[Suppliers_Archive] | [BankInternationalCode] | nvarchar | 40 | 10 | 5 | 1 |
| [Purchasing].[Suppliers_Archive] | [DeliveryAddressLine1] | nvarchar | 120 | 16 | 8 | 1 |
| [Purchasing].[Suppliers_Archive] | [DeliveryAddressLine2] | nvarchar | 120 | 52 | 26 | 1 |
| [Purchasing].[Suppliers_Archive] | [DeliveryPostalCode] | nvarchar | 20 | 10 | 5 | 1 |
| [Purchasing].[Suppliers_Archive] | [FaxNumber] | nvarchar | 40 | 28 | 14 | 1 |
| [Purchasing].[Suppliers_Archive] | [PhoneNumber] | nvarchar | 40 | 28 | 14 | 1 |
| [Purchasing].[Suppliers_Archive] | [PostalAddressLine1] | nvarchar | 120 | 24 | 12 | 1 |
| [Purchasing].[Suppliers_Archive] | [PostalAddressLine2] | nvarchar | 120 | 20 | 10 | 1 |
| [Purchasing].[Suppliers_Archive] | [PostalPostalCode] | nvarchar | 20 | 10 | 5 | 1 |
| [Purchasing].[Suppliers_Archive] | [SupplierName] | nvarchar | 200 | 48 | 24 | 1 |
| [Purchasing].[Suppliers_Archive] | [SupplierReference] | nvarchar | 40 | 22 | 11 | 1 |
| [Purchasing].[Suppliers_Archive] | [WebsiteURL] | nvarchar | 512 | 74 | 37 | 1 |
| [Purchasing].[SupplierTransactions] | [SupplierInvoiceNumber] | nvarchar | 40 | 8 | 4 | 1 |
| [Sales].[BuyingGroups] | [BuyingGroupName] | nvarchar | 100 | 26 | 13 | 1 |
| [Sales].[BuyingGroups_Archive] | [BuyingGroupName] | nvarchar | 100 | NULL | NULL | 1 |
| [Sales].[CustomerCategories] | [CustomerCategoryName] | nvarchar | 100 | 32 | 16 | 1 |
| [Sales].[CustomerCategories_Archive] | [CustomerCategoryName] | nvarchar | 100 | 16 | 8 | 1 |
| [Sales].[Customers] | [CustomerName] | nvarchar | 200 | 76 | 38 | 1 |
| [Sales].[Customers] | [DeliveryAddressLine1] | nvarchar | 120 | 18 | 9 | 1 |
| [Sales].[Customers] | [DeliveryAddressLine2] | nvarchar | 120 | 52 | 26 | 1 |
| [Sales].[Customers] | [DeliveryPostalCode] | nvarchar | 20 | 10 | 5 | 1 |
| [Sales].[Customers] | [DeliveryRun] | nvarchar | 10 | 0 | 0 | 1 |
| [Sales].[Customers] | [FaxNumber] | nvarchar | 40 | 28 | 14 | 1 |
| [Sales].[Customers] | [PhoneNumber] | nvarchar | 40 | 28 | 14 | 1 |
| [Sales].[Customers] | [PostalAddressLine1] | nvarchar | 120 | 22 | 11 | 1 |
| [Sales].[Customers] | [PostalAddressLine2] | nvarchar | 120 | 42 | 21 | 1 |
| [Sales].[Customers] | [PostalPostalCode] | nvarchar | 20 | 10 | 5 | 1 |
| [Sales].[Customers] | [RunPosition] | nvarchar | 10 | 0 | 0 | 1 |
| [Sales].[Customers] | [WebsiteURL] | nvarchar | 512 | 104 | 52 | 1 |
| [Sales].[Customers_Archive] | [CustomerName] | nvarchar | 200 | 46 | 23 | 1 |
| [Sales].[Customers_Archive] | [DeliveryAddressLine1] | nvarchar | 120 | 16 | 8 | 1 |
| [Sales].[Customers_Archive] | [DeliveryAddressLine2] | nvarchar | 120 | 48 | 24 | 1 |
| [Sales].[Customers_Archive] | [DeliveryPostalCode] | nvarchar | 20 | 10 | 5 | 1 |
| [Sales].[Customers_Archive] | [DeliveryRun] | nvarchar | 10 | 0 | 0 | 1 |
| [Sales].[Customers_Archive] | [FaxNumber] | nvarchar | 40 | 28 | 14 | 1 |
| [Sales].[Customers_Archive] | [PhoneNumber] | nvarchar | 40 | 28 | 14 | 1 |
| [Sales].[Customers_Archive] | [PostalAddressLine1] | nvarchar | 120 | 22 | 11 | 1 |
| [Sales].[Customers_Archive] | [PostalAddressLine2] | nvarchar | 120 | 34 | 17 | 1 |
| [Sales].[Customers_Archive] | [PostalPostalCode] | nvarchar | 20 | 10 | 5 | 1 |
| [Sales].[Customers_Archive] | [RunPosition] | nvarchar | 10 | 0 | 0 | 1 |
| [Sales].[Customers_Archive] | [WebsiteURL] | nvarchar | 512 | 96 | 48 | 1 |
| [Sales].[InvoiceLines] | [Description] | nvarchar | 200 | 170 | 85 | 1 |
| [Sales].[Invoices] | [ConfirmedReceivedBy] | nvarchar | 8000 | 58 | 29 | 1 |
| [Sales].[Invoices] | [CustomerPurchaseOrderNumber] | nvarchar | 40 | 10 | 5 | 1 |
| [Sales].[Invoices] | [DeliveryRun] | nvarchar | 10 | 0 | 0 | 1 |
| [Sales].[Invoices] | [RunPosition] | nvarchar | 10 | 0 | 0 | 1 |
| [Sales].[OrderLines] | [Description] | nvarchar | 200 | 170 | 85 | 1 |
| [Sales].[Orders] | [CustomerPurchaseOrderNumber] | nvarchar | 40 | 10 | 5 | 1 |
| [Sales].[SpecialDeals] | [DealDescription] | nvarchar | 60 | 48 | 24 | 1 |
| [Warehouse].[Colors] | [ColorName] | nvarchar | 40 | 22 | 11 | 1 |
| [Warehouse].[Colors_Archive] | [ColorName] | nvarchar | 40 | 8 | 4 | 1 |
| [Warehouse].[PackageTypes] | [PackageTypeName] | nvarchar | 100 | 12 | 6 | 1 |
| [Warehouse].[PackageTypes_Archive] | [PackageTypeName] | nvarchar | 100 | NULL | NULL | 1 |
| [Warehouse].[StockGroups] | [StockGroupName] | nvarchar | 100 | 38 | 19 | 1 |
| [Warehouse].[StockGroups_Archive] | [StockGroupName] | nvarchar | 100 | 16 | 8 | 1 |
| [Warehouse].[StockItemHoldings] | [BinLocation] | nvarchar | 40 | 8 | 4 | 1 |
| [Warehouse].[StockItems] | [Barcode] | nvarchar | 100 | 26 | 13 | 1 |
| [Warehouse].[StockItems] | [Brand] | nvarchar | 100 | 18 | 9 | 1 |
| [Warehouse].[StockItems] | [Size] | nvarchar | 40 | 26 | 13 | 1 |
| [Warehouse].[StockItems] | [StockItemName] | nvarchar | 200 | 170 | 85 | 1 |
| [Warehouse].[StockItems_Archive] | [Barcode] | nvarchar | 100 | 26 | 13 | 1 |
| [Warehouse].[StockItems_Archive] | [Brand] | nvarchar | 100 | 18 | 9 | 1 |
| [Warehouse].[StockItems_Archive] | [Size] | nvarchar | 40 | 26 | 13 | 1 |
| [Warehouse].[StockItems_Archive] | [StockItemName] | nvarchar | 200 | 170 | 85 | 1 |
| [Warehouse].[VehicleTemperatures] | [FullSensorData] | nvarchar | 2000 | 392 | 196 | 1 |
| [Warehouse].[VehicleTemperatures] | [VehicleRegistration] | nvarchar | 40 | 18 | 9 | 1 |