You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: azure-sql/database/doc-changes-updates-release-notes-whats-new.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -53,7 +53,6 @@ The following table lists the features of Azure SQL Database that are currently
53
53
|**Multiple geo-replicas for Hyperscale**| The ability to create up to four geo-replicas for Azure SQL Hyperscale is in preview. Learn more about [multiple geo-replicas for Hyperscale](https://aka.ms/sqlhs-multi-geo-announcement). |
54
54
|**Network Security Perimeter**|[Azure Network Security Perimeter](network-security-perimeter.md) allows organizations to define a logical network isolation boundary for PaaS resources (for example, Azure Storage and SQL Database) that are deployed outside your organization's virtual networks. It restricts public network access to PaaS resources outside of the perimeter, and access can be exempted by using explicit access rules for public inbound and outbound. |
55
55
|**Query editor in the Azure portal**| The [query editor in the Azure portal](query-editor.md) allows you to run queries against your Azure SQL Database directly from a web browser. |
56
-
|**Regular expression functions**| Regular expression (REGEX) functions return text based on values in a search pattern. [Regular expressions](/sql/relational-databases/regular-expressions/overview). |
57
56
|**Restart database in the Azure portal**| You can [restart your SQL database or elastic pool](restart-database.md) from the Azure portal. |
58
57
59
58
## General availability (GA)
@@ -62,6 +61,7 @@ The following table lists features of Azure SQL Database that have been made gen
62
61
63
62
| Feature | GA Month | Details |
64
63
| --- | --- | --- |
64
+
|**Regular expression functions**| November 2025 | Regular expression (REGEX) functions return text based on values in a search pattern. [Regular expressions](/sql/relational-databases/regular-expressions/overview). |
65
65
|**Immutable LTR backups**| November 2025 | You can [configure long-term retention backups of Azure SQL Database as immutable](backup-immutability.md) with time-based immutability. |
66
66
|**Convert to Hyperscale with geo-replicas**| October 2025 | The ability to [convert a geo-replicated database non-Hyperscale database to Hyperscale](convert-to-hyperscale.md) using T-SQL, REST API, PowerShell, or Azure CLI is now generally available. For more information, see [Blog: Hyperscale conversion support for geo-replicas](https://aka.ms/hs-conversion-geodr-ga). |
67
67
|**ABORT_QUERY_EXECUTION**| October 2025 | The `ABORT_QUERY_EXECUTION`[query hint](/sql/t-sql/queries/hints-transact-sql-query?view=azuresqldb-current&preserve-view=true#use_hint_abort_query_execution) can block future execution of known problematic queries, for example nonessential queries causing high resource consumption and impacting critical application workloads. For more information, see [Query Store hints: Block future execution of problematic queries](/sql/relational-databases/performance/query-store-hints-best-practices?view=azuresqldb-current&preserve-view=true#block-future-execution-of-problematic-queries). |
@@ -99,6 +99,7 @@ Learn about significant changes to the Azure SQL Database documentation. For pre
99
99
100
100
| Changes | Details |
101
101
| --- | --- |
102
+
|**Regular expression functions preview**| Regular expression (REGEX) functions return text based on values in a search pattern. Regular expression (REGEX) functions are now generally available for Azure SQL Database. For more information, see [Regular expressions](/sql/relational-databases/regular-expressions/overview) or [General Availability Announcement: Regex Support in SQL Server 2025 & Azure SQL](https://devblogs.microsoft.com/azure-sql/general-availability-announcement-regex-support-in-sql-server-2025-azure-sql/). |
102
103
|**Change event streaming preview**| Capture and publish incremental DML changes of data (such as updates, inserts, and deletes) in near real-time. Change event streaming sends details of data changes such as the schema, previous values, and new values to Azure Event Hubs in a simple CloudEvent, serialized as either native JSON or Avro Binary. This feature is now in preview. To learn more, review [Change event streaming](/sql/relational-databases/track-changes/change-event-streaming/overview). |
Copy file name to clipboardExpand all lines: azure-sql/managed-instance/doc-changes-updates-release-notes-whats-new.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,6 @@ The following table lists the features of Azure SQL Managed Instance that are cu
38
38
|[DATEADD number allows bigint](/sql/t-sql/functions/dateadd-transact-sql)| For `DATEADD (datepart, number, date)`, number can be expressed as a **bigint**.|
39
39
|[Endpoint policies](./service-endpoint-policies-configure.md)| Configure which Azure Storage accounts can be accessed from a SQL Managed Instance subnet. Grants an extra layer of protection against inadvertent or malicious data exfiltration.|
40
40
|[Modernization Advisor](../virtual-machines/modernization-advisor.md)| Use the Modernization Advisor in the Azure portal to help you determine if migrating to Azure SQL Managed Instance from a SQL Server VM saves you money or optimizes performance. |
41
-
|[Regular expression functions](/sql/relational-databases/regular-expressions/overview)| Regular expression (REGEX) functions return text based on values in a search pattern. |
42
41
|[SDK-style SQL project](/sql/azure-data-studio/extensions/sql-database-project-extension-sdk-style-projects)| Use [Microsoft.Build.Sql](https://www.nuget.org/packages/Microsoft.Build.Sql) for SDK-style SQL projects in the SQL Database Projects extension in Visual Studio Code. SDK-style SQL projects are especially advantageous for applications shipped through pipelines or built in cross-platform environments.|
43
42
|[Service Broker](/sql/database-engine/configure-windows/sql-server-service-broker)| Support for cross-instance message exchange using Service Broker between instances of Azure SQL Managed Instance, and between SQL Server and Azure SQL Managed Instance. |
44
43
|[SQL Server 2025 update policy](update-policy.md#sql-server-2025-update-policy)| Align your SQL managed instance database format with the SQL Server 2025 database engine. |
@@ -51,6 +50,7 @@ The following table lists features of Azure SQL Managed Instance that have been
51
50
52
51
| Feature | GA Month | Details |
53
52
| ---| --- |--- |
53
+
|[Regular expression functions](/sql/relational-databases/regular-expressions/overview)| November 2025 | Regular expression (REGEX) functions return text based on values in a search pattern. |
54
54
|[Flexible memory](resource-limits.md#flexible-memory)| November 2025 | Save on cost by choosing the memory allocation for your [Next-gen General Purpose](service-tiers-next-gen-general-purpose-use.md) instance based on your workload needs.|
55
55
|[Next-gen General Purpose](service-tiers-next-gen-general-purpose-use.md)| November 2025 | An architectural upgrade of the General Purpose service tier that uses [Elastic SAN storage](/azure/storage/elastic-san/elastic-san-introduction) for greater resource flexibility, and improved performance while maintaining the same baseline cost as the General Purpose service tier. |
56
56
|[Migrate SQL Server to Azure](/sql/sql-server/azure-arc/migrate-to-azure-sql-managed-instance)| October 2025 | Migrate your SQL Server enabled by Azure Arc instance to Azure SQL Managed Instance through the Azure portal.|
@@ -79,6 +79,7 @@ Learn about significant changes to the Azure SQL Managed Instance documentation.
79
79
80
80
| Changes | Details |
81
81
| --- | --- |
82
+
|**Regular expression functions preview**| Regular expression (REGEX) functions return text based on values in a search pattern. Regular expression (REGEX) functions are now generally available for Azure SQL Managed Instance. For more information, see [Regular expressions](/sql/relational-databases/regular-expressions/overview) or [General Availability Announcement: Regex Support in SQL Server 2025 & Azure SQL](https://devblogs.microsoft.com/azure-sql/general-availability-announcement-regex-support-in-sql-server-2025-azure-sql/). |
82
83
|**Flexible memory GA**| Save on cost by choosing the memory allocation for your [Next-gen General Purpose](service-tiers-next-gen-general-purpose-use.md) instance based on your workload needs. This capability is now generally available. To learn more, review [Flexible memory](resource-limits.md#flexible-memory). |
83
84
|**Next-gen General Purpose GA**| An architectural upgrade of the General Purpose service tier that uses [Elastic SAN storage](/azure/storage/elastic-san/elastic-san-introduction) for greater resource flexibility, and improved performance while maintaining the same baseline cost as the General Purpose service tier. This upgrade to the service tier is now generally available (GA). To learn more, review [Next-gen General Purpose](service-tiers-next-gen-general-purpose-use.md).|
:::image type="content" source="media/primary-and-foreign-key-constraints/composite-primary-key.gif" alt-text="Diagram of rows in a table for a composite PRIMARY KEY constraint.":::
35
35
36
36
- A table can contain only one primary key constraint.
37
-
- A primary key can't exceed 16 columns and a total key length of 900 bytes.
37
+
- A primary key can't exceed 32 columns and a total key length of 900 bytes.
38
38
- The index generated by a primary key constraint can't cause the number of indexes on the table to exceed 999 nonclustered indexes and 1 clustered index.
39
39
- If clustered or nonclustered isn't specified for a primary key constraint, clustered is used if there's no clustered index on the table.
40
40
- All columns defined within a primary key constraint must be defined as not null. If nullability isn't specified, all columns participating in a primary key constraint have their nullability set to not null.
Copy file name to clipboardExpand all lines: docs/t-sql/statements/bulk-insert-transact-sql.md
+23-20Lines changed: 23 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: Transact-SQL reference for the BULK INSERT statement.
4
4
author: markingmyname
5
5
ms.author: maghan
6
6
ms.reviewer: randolphwest, wiassaf
7
-
ms.date: 11/26/2025
7
+
ms.date: 12/01/2025
8
8
ms.service: sql
9
9
ms.subservice: t-sql
10
10
ms.topic: reference
@@ -126,7 +126,7 @@ The `BULK INSERT` statement has different arguments and options in different pla
126
126
| --- | --- |
127
127
| Data source | Local path, Network path (UNC), or Azure Storage | Azure Storage | Azure Storage, One Lake |
128
128
| Source authentication | Windows authentication, SAS | Microsoft Entra ID, SAS token, managed identity | Microsoft Entra ID |
129
-
| Unsupported options |`*` wildcards in path |`*` wildcards in path |`DATA_SOURCE`, `FORMATFILE_DATA_SOURCE`, `ERRORFILE`, `ERRORFILE_DATA_SOURCE`|
129
+
| Unsupported options |`*` wildcards in path |`*` wildcards in path | `DATAFILETYPE = {'native' | 'widenative'}` |
130
130
| Enabled options but without effect |||`KEEPIDENTITY`, `FIRE_TRIGGERS`, `CHECK_CONSTRAINTS`, `TABLOCK`, `ORDER`, `ROWS_PER_BATCH`, `KILOBYTES_PER_BATCH`, and `BATCHSIZE` aren't applicable. They don't throw a syntax error, but they don't have any effect |
131
131
132
132
#### *database_name*
@@ -176,7 +176,7 @@ FROM 'https://<data-lake>.blob.core.windows.net/public/curated/covid-19/bing_cov
176
176
> [!NOTE]
177
177
> Replace `<data-lake>.blob.core.windows.net` with an appropriate URL.
Specifies the code page of the data in the data file. `CODEPAGE` is relevant only if the data contains **char**, **varchar**, or **text** columns with character values greater than `127` or less than `32`. For an example, see [Specify a code page](#d-specify-a-code-page).
182
182
@@ -200,7 +200,7 @@ You should specify a collation name for each column in a [format file](../../rel
200
200
|`RAW`| No conversion from one code page to another occurs. `RAW` is the fastest option. |
201
201
|*code_page*| Specific code page number, for example, 850.<br /><br />Versions before [!INCLUDE [sssql16-md](../../includes/sssql16-md.md)] don't support code page 65001 (UTF-8 encoding). |
**Applies to:**[!INCLUDE [sssql17-md](../../includes/sssql17-md.md)] and later versions, and Azure SQL Database.
238
238
@@ -254,27 +254,27 @@ FROM 'curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv'
254
254
WITH (DATA_SOURCE ='<data-lake>', FIRSTROW =2, LASTROW =100, FIELDTERMINATOR =',');
255
255
```
256
256
257
-
#### MAXERRORS = *max_errors*
257
+
#### MAXERRORS
258
258
259
259
Specifies the maximum number of syntax errors allowed in the data before the bulk-import operation is canceled. Each row that can't be imported by the bulk-import operation is ignored and counted as one error. If *max_errors* isn't specified, the default is 10.
260
260
261
261
The `MAX_ERRORS` option doesn't apply to constraint checks or to converting **money** and **bigint** data types.
262
262
263
-
#### ERRORFILE = '*error_file_path*'
263
+
#### ERRORFILE
264
264
265
265
Specifies the file used to collect rows that have formatting errors and can't be converted to an OLE DB rowset. These rows are copied into this error file from the data file "as is."
266
266
267
267
The error file is created when the command is executed. An error occurs if the file already exists. Additionally, a control file with the extension `.ERROR.txt` is created, which references each row in the error file and provides error diagnostics. As soon as the errors have been corrected, the data can be loaded.
268
268
269
269
Beginning with [!INCLUDE [sssql17-md](../../includes/sssql17-md.md)], the *error_file_path* can be in Azure Blob Storage.
**Applies to:**[!INCLUDE [sssql17-md](../../includes/sssql17-md.md)] and later versions.
274
274
275
275
Specifies a named external data source pointing to the Azure Blob Storage location of the error file to keep track of errors found during the import. The external data source must be created using the `TYPE = BLOB_STORAGE` option added in [!INCLUDE [sssql17-md](../../includes/sssql17-md.md)]. For more information, see [CREATE EXTERNAL DATA SOURCE](create-external-data-source-transact-sql.md).
276
276
277
-
#### FIRSTROW = *first_row*
277
+
#### FIRSTROW
278
278
279
279
Specifies the number of the first row to load. The default is the first row in the specified data file. `FIRSTROW` is 1-based.
280
280
@@ -289,18 +289,18 @@ WITH (FIRSTROW = 2);
289
289
290
290
The `FIRSTROW` attribute isn't intended to skip column headers. The `BULK INSERT` statement doesn't support skipping headers. If you choose to skip rows, the [!INCLUDE [ssDEnoversion](../../includes/ssdenoversion-md.md)] looks only at the field terminators, and doesn't validate the data in the fields of skipped rows.
291
291
292
-
#### LASTROW = *last_row*
292
+
#### LASTROW
293
293
294
294
Specifies the number of the last row to load. The default is 0, which indicates the last row in the specified data file.
**Applies to:**[!INCLUDE [sssql17-md](../../includes/sssql17-md.md)] and later versions.
299
299
300
300
Specifies a named external data source pointing to the Azure Blob Storage location of the format file to define the schema of imported data. The external data source must be created using the `TYPE = BLOB_STORAGE` option added in [!INCLUDE [sssql17-md](../../includes/sssql17-md.md)]. For more information, see [CREATE EXTERNAL DATA SOURCE](create-external-data-source-transact-sql.md).
Specifies the number of rows in a batch. Each batch is copied to the server as one transaction. If this fails, [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] commits or rolls back the transaction for every batch. By default, all data in the specified data file is one batch. For information about performance considerations, see [Performance considerations](#performance-considerations) later in this article.
306
306
@@ -333,17 +333,17 @@ For more information, see about keeping identify values see [Keep identity value
333
333
334
334
Specifies that empty columns should retain a null value during the bulk-import operation, instead of having any default values for the columns inserted. For more information, see [Keep nulls or default values during bulk import](../../relational-databases/import-export/keep-nulls-or-use-default-values-during-bulk-import-sql-server.md).
335
335
336
-
#### KILOBYTES_PER_BATCH = *kilobytes_per_batch*
336
+
#### KILOBYTES_PER_BATCH
337
337
338
338
Specifies the approximate number of kilobytes (KB) of data per batch as *kilobytes_per_batch*. By default, `KILOBYTES_PER_BATCH` is unknown. For information about performance considerations, see [Performance considerations](#performance-considerations) later in this article.
Specifies how the data in the data file is sorted. Bulk import performance is improved if the data being imported is sorted according to the clustered index on the table, if any. If the data file is sorted in an order other than the order of a clustered index key, or if there's no clustered index on the table, the `ORDER` clause is ignored. The column names supplied must be valid column names in the destination table. By default, the bulk insert operation assumes the data file is unordered. For optimized bulk import, [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] also validates that the imported data is sorted.
343
343
344
344
*n* is a placeholder that indicates that multiple columns can be specified.
345
345
346
-
#### ROWS_PER_BATCH = *rows_per_batch*
346
+
#### ROWS_PER_BATCH
347
347
348
348
Indicates the approximate number of rows of data in the data file.
349
349
@@ -359,7 +359,7 @@ For a columnstore index, the locking behavior is different because it's internal
359
359
360
360
### Input file format options
361
361
362
-
#### FORMAT = 'CSV'
362
+
#### FORMAT
363
363
364
364
**Applies to:**[!INCLUDE [sssql17-md](../../includes/sssql17-md.md)] and later versions.
365
365
@@ -370,14 +370,17 @@ BULK INSERT Sales.Orders
370
370
FROM'\\SystemX\DiskZ\Sales\data\orders.csv'
371
371
WITH (FORMAT ='CSV');
372
372
```
373
+
::: moniker range="=fabric"
374
+
In Fabric Data Warehouse, the `BULK INSERT` statement supports the same formats as the `COPY INTO` statement, so `FORMAT='PARQUET'` is also supported.
375
+
::: moniker-end
373
376
374
-
#### FIELDQUOTE = '*field_quote*'
377
+
#### FIELDQUOTE
375
378
376
379
**Applies to:**[!INCLUDE [sssql17-md](../../includes/sssql17-md.md)] and later versions.
377
380
378
381
Specifies a character to use as the quote character in the CSV file. If not specified, the quote character (`"`) is used as the quote character, as defined in the [RFC 4180](https://tools.ietf.org/html/rfc4180) standard.
379
382
380
-
#### FORMATFILE = '*format_file_path*'
383
+
#### FORMATFILE
381
384
382
385
Specifies the full path of a format file. A format file describes the data file that contains stored responses created by using the **bcp** utility on the same table or view. The format file should be used if:
383
386
@@ -388,7 +391,7 @@ Specifies the full path of a format file. A format file describes the data file
388
391
389
392
Beginning with [!INCLUDE [sssql17-md](../../includes/sssql17-md.md)], and in Azure SQL Database, `format_file_path` can be in Azure Blob Storage.
390
393
391
-
#### FIELDTERMINATOR = '*field_terminator*'
394
+
#### FIELDTERMINATOR
392
395
393
396
Specifies the field terminator to be used for **char** and **widechar** data files. The default field terminator is `\t` (tab character). For more information, see [Specify field and row terminators](../../relational-databases/import-export/specify-field-and-row-terminators-sql-server.md).
> Replace `<data-lake>.blob.core.windows.net` with an appropriate URL.
403
406
404
-
#### ROWTERMINATOR = '*row_terminator*'
407
+
#### ROWTERMINATOR
405
408
406
409
Specifies the row terminator to be used for **char** and **widechar** data files. The default row terminator is `\r\n` (newline character). For more information, see [Specify field and row terminators](../../relational-databases/import-export/specify-field-and-row-terminators-sql-server.md).
0 commit comments