Skip to content

Commit 8b51655

Browse files
Merge pull request #36979 from MicrosoftDocs/main
Auto Publish – main to live - 2026-03-30 22:30 UTC
2 parents b21040f + 6471b91 commit 8b51655

15 files changed

Lines changed: 301 additions & 200 deletions

azure-sql/database/elastic-pool-manage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,4 +113,4 @@ To create and manage SQL Database elastic pools and pooled databases, use these
113113

114114
## Related content
115115

116-
- To learn more about design patterns for SaaS applications using elastic pools, see [Design Patterns for Multi-tenant SaaS Applications with Azure SQL Database](saas-tenancy-app-design-patterns.md).
116+
- To learn more about design patterns for SaaS applications using elastic pools, see [Design Patterns for multitenant SaaS Applications with Azure SQL Database](saas-tenancy-app-design-patterns.md).

azure-sql/database/elastic-scale-shard-map-management.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ For a single-tenant model, create a **list-mapping** shard map. The single-tenan
3939

4040
:::image type="content" source="media/elastic-scale-shard-map-management/listmapping.png" alt-text="Diagram of List mapping.":::
4141

42-
The multi-tenant model assigns several tenants to an individual database (and you can distribute groups of tenants across multiple databases). Use this model when you expect each tenant to have small data needs. In this model, assign a range of tenants to a database using **range mapping**.
42+
The multitenant model assigns several tenants to an individual database (and you can distribute groups of tenants across multiple databases). Use this model when you expect each tenant to have small data needs. In this model, assign a range of tenants to a database using **range mapping**.
4343

4444
:::image type="content" source="media/elastic-scale-shard-map-management/rangemapping.png" alt-text="Diagram of Range mapping.":::
4545

46-
Or you can implement a multi-tenant database model using a *list mapping* to assign multiple tenants to an individual database. For example, DB1 is used to store information about tenant ID 1 and 5, and DB2 stores data for tenant 7 and tenant 10.
46+
Or you can implement a multitenant database model using a *list mapping* to assign multiple tenants to an individual database. For example, DB1 is used to store information about tenant ID 1 and 5, and DB2 stores data for tenant 7 and tenant 10.
4747

4848
:::image type="content" source="media/elastic-scale-shard-map-management/multipleonsingledb.png" alt-text="Diagram of Multiple tenants on single DB.":::
4949

azure-sql/database/saas-tenancy-app-design-patterns.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ The vendor can access all the databases in all the standalone app instances, eve
8080

8181
This next pattern uses a multitenant application with many databases, all being single-tenant databases. A new database is provisioned for each new tenant. The application tier is scaled *up* vertically by adding more resources per node. Or the app is scaled *out* horizontally by adding more nodes. The scaling is based on workload, and is independent of the number or scale of the individual databases.
8282

83-
:::image type="content" source="media/saas-tenancy-app-design-patterns/saas-multi-tenant-app-database-per-tenant.png" alt-text="Diagram of the design of a multi-tenant app with database-per-tenant.":::
83+
:::image type="content" source="media/saas-tenancy-app-design-patterns/saas-multi-tenant-app-database-per-tenant.png" alt-text="Diagram of the design of a multitenant app with database-per-tenant.":::
8484

8585
### Customize for a tenant
8686

@@ -92,7 +92,7 @@ With database-per-tenant, customizing the schema for one or more individual tena
9292

9393
When databases are deployed in the same resource group, they can be grouped into elastic pools. The pools provide a cost-effective way of sharing resources across many databases. This pool option is cheaper than requiring each database to be large enough to accommodate the usage peaks that it experiences. Even though pooled databases share access to resources they can still achieve a high degree of performance isolation.
9494

95-
:::image type="content" source="media/saas-tenancy-app-design-patterns/saas-multi-tenant-app-database-per-tenant-pool.png" alt-text="Diagram of the design of multi-tenant app with database-per-tenant, using elastic pool.":::
95+
:::image type="content" source="media/saas-tenancy-app-design-patterns/saas-multi-tenant-app-database-per-tenant-pool.png" alt-text="Diagram of the design of multitenant app with database-per-tenant, using elastic pool.":::
9696

9797
Azure SQL Database provides the tools necessary to configure, monitor, and manage the sharing. Both pool-level and database-level performance metrics are available in the Azure portal, and through Azure Monitor logs. The metrics can give great insights into both aggregate and tenant-specific performance. Individual databases can be moved between pools to provide reserved resources to a specific tenant. These tools enable you to ensure good performance in a cost effective manner.
9898

@@ -141,7 +141,7 @@ Management operations that are focused on individual tenants are more complex to
141141

142142
Most SaaS applications access the data of only one tenant at a time. This access pattern allows tenant data to be distributed across multiple databases or shards, where all the data for any one tenant is contained in one shard. Combined with a multitenant database pattern, a sharded model allows almost limitless scale.
143143

144-
:::image type="content" source="media/saas-tenancy-app-design-patterns/saas-multi-tenant-app-sharded-multi-tenant-databases.png" alt-text="Diagram of the design of a multi-tenant app with sharded multi-tenant databases.":::
144+
:::image type="content" source="media/saas-tenancy-app-design-patterns/saas-multi-tenant-app-sharded-multi-tenant-databases.png" alt-text="Diagram of the design of a multitenant app with sharded multitenant databases.":::
145145

146146
### Manage shards
147147

docs/connect/jdbc/reference/createstatement-method-int-int.md

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: "createStatement Method (int, int)"
33
description: "createStatement Method (int, int)"
44
author: David-Engel
55
ms.author: davidengel
6-
ms.date: "01/19/2017"
6+
ms.date: 03/27/2026
77
ms.service: sql
88
ms.subservice: connectivity
99
ms.topic: reference
@@ -24,16 +24,27 @@ public java.sql.Statement createStatement(int resultSetType,
2424
int resultSetConcurrency)
2525
```
2626

27-
#### Parameters
28-
*resultSetType*
29-
30-
The **int** value representing the result set type.
31-
32-
*resultSetConcurrency*
33-
34-
The **int** value representing the result set concurrency type.
27+
#### Parameters
28+
*resultSetType*
29+
30+
The **int** value representing the result set type. Use one of the following `java.sql.ResultSet` constants:
31+
32+
| Constant | Description |
33+
|---|---|
34+
| `ResultSet.TYPE_FORWARD_ONLY` | Cursor moves forward only. Best performance for sequential reads. |
35+
| `ResultSet.TYPE_SCROLL_INSENSITIVE` | Scrollable result set that doesn't reflect changes made to the underlying data after the result set is created. |
36+
| `ResultSet.TYPE_SCROLL_SENSITIVE` | Scrollable result set that reflects changes made to the underlying data. |
37+
38+
*resultSetConcurrency*
39+
40+
The **int** value representing the result set concurrency type. Use one of the following `java.sql.ResultSet` constants:
41+
42+
| Constant | Description |
43+
|---|---|
44+
| `ResultSet.CONCUR_READ_ONLY` | The result set can't be updated. |
45+
| `ResultSet.CONCUR_UPDATABLE` | The result set can be updated by using positioned updates and deletes. |
3546

36-
## Return Value
47+
## Return value
3748
The Statement object.
3849

3950
## Exceptions
@@ -42,9 +53,8 @@ public java.sql.Statement createStatement(int resultSetType,
4253
## Remarks
4354
This createStatement method is specified by the createStatement method in the java.sql.Connection interface.
4455

45-
## See Also
46-
[createStatement Method (SQLServerConnection)](../../../connect/jdbc/reference/createstatement-method-sqlserverconnection.md)
47-
[SQLServerConnection Members](../../../connect/jdbc/reference/sqlserverconnection-members.md)
48-
[SQLServerConnection Class](../../../connect/jdbc/reference/sqlserverconnection-class.md)
49-
50-
56+
## Related content
57+
58+
- [createStatement Method (SQLServerConnection)](../../../connect/jdbc/reference/createstatement-method-sqlserverconnection.md)
59+
- [SQLServerConnection Members](../../../connect/jdbc/reference/sqlserverconnection-members.md)
60+
- [SQLServerConnection Class](../../../connect/jdbc/reference/sqlserverconnection-class.md)

docs/connect/jdbc/reference/sqlserverdatabasemetadata-members.md

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: "SQLServerDatabaseMetaData Members"
33
description: "SQLServerDatabaseMetaData Members"
44
author: David-Engel
55
ms.author: davidengel
6-
ms.date: "01/19/2017"
6+
ms.date: 03/27/2026
77
ms.service: sql
88
ms.subservice: connectivity
99
ms.topic: reference
@@ -12,8 +12,22 @@ ms.custom: sfi-ropc-nochange
1212
# SQLServerDatabaseMetaData Members
1313
[!INCLUDE[Driver_JDBC_Download](../../../includes/driver_jdbc_download.md)]
1414

15-
The following tables list the members that are exposed by the [SQLServerDatabaseMetaData](../../../connect/jdbc/reference/sqlserverdatabasemetadata-class.md) class.
16-
15+
The following tables list the members that are exposed by the [SQLServerDatabaseMetaData](../../../connect/jdbc/reference/sqlserverdatabasemetadata-class.md) class.
16+
17+
> [!TIP]
18+
> To use these methods, first obtain a `DatabaseMetaData` object from an active connection:
19+
>
20+
> ```java
21+
> Connection conn = DriverManager.getConnection(connectionUrl);
22+
> DatabaseMetaData dbmd = conn.getMetaData();
23+
>
24+
> // Example: list all tables in the database
25+
> ResultSet rs = dbmd.getTables(null, null, "%", new String[]{"TABLE"});
26+
> while (rs.next()) {
27+
> System.out.println(rs.getString("TABLE_NAME"));
28+
> }
29+
> ```
30+
1731
## Constructors
1832
None.
1933
@@ -208,7 +222,6 @@ ms.custom: sfi-ropc-nochange
208222
|java.lang.Object|clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait|
209223
|java.sql.Wrapper|isWrapperFor, unwrap|
210224
211-
## See Also
212-
[SQLServerDatabaseMetaData Class](../../../connect/jdbc/reference/sqlserverdatabasemetadata-class.md)
213-
214-
225+
## Related content
226+
227+
- [SQLServerDatabaseMetaData Class](../../../connect/jdbc/reference/sqlserverdatabasemetadata-class.md)

docs/connect/odbc/linux-mac/install-microsoft-odbc-driver-sql-server-macos.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@ This article explains how to install the Microsoft ODBC Driver for SQL Server on
2121

2222
This article provides commands for installing the ODBC driver from the bash shell. If you want to download the packages directly, see [Download ODBC Driver for SQL Server](../download-odbc-driver-for-sql-server.md).
2323

24-
> [!NOTE]
25-
> The Microsoft ODBC driver for SQL Server on macOS is only supported on the x64 architecture through version 17.7. Apple ARM64 support was added starting with version 17.8. The architecture will be detected and the correct package will be automatically installed by the Homebrew formula. If your command prompt is running in x64 emulation mode on ARM64, the x64 package will be installed. If you're not running in emulation mode in your command prompt, the ARM64 package will be installed.
24+
> [!NOTE]
25+
> The Microsoft ODBC driver for SQL Server on macOS is only supported on the x64 architecture through version 17.7. Apple ARM64 (M1, M2, M3, and later Apple Silicon chips) support was added starting with version 17.8. The Homebrew formula detects the architecture and automatically installs the correct package. If your command prompt is running in x64 emulation mode on ARM64, the x64 package is installed. If you aren't running in emulation mode, the ARM64 package is installed.
2626
> Additionally, the Homebrew default directory changed with the ARM64 architecture, to `/opt/homebrew`. The paths in the [Driver files](#driver-files) section use the x64 Homebrew paths, which default to `/usr/local`, so your file paths will vary accordingly.
27+
>
28+
> The Microsoft ODBC driver for macOS is designed to work with **unixODBC** (installed by Homebrew). If you use **iODBC** as your driver manager, you might encounter architecture mismatch errors such as `incompatible architecture (have 'arm64', need 'x86_64')`. To resolve this issue, use unixODBC instead of iODBC. Homebrew automatically installs unixODBC as a dependency of the `msodbcsql18` package.
2729
2830
## Microsoft ODBC 18
2931

docs/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to install the Microsoft ODBC Driver for SQL Server on Li
44
author: David-Engel
55
ms.author: davidengel
66
ms.reviewer: randolphwest
7-
ms.date: 01/06/2026
7+
ms.date: 03/27/2026
88
ms.service: sql
99
ms.subservice: connectivity
1010
ms.topic: concept-article
@@ -186,6 +186,9 @@ sudo apt-get install -y unixodbc-dev
186186
187187
### [Azure Linux](#tab/azure18-install)
188188
189+
> [!NOTE]
190+
> Azure Linux 3.0 includes the Microsoft packages repository by default. You don't need to manually configure the repository before you install the driver. If your Azure Linux image uses `tdnf` as the package manager, the following commands work directly.
191+
189192
```bash
190193
if ! [[ "3.0" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)"* ]];
191194
then
@@ -721,6 +724,8 @@ The driver needs to load the resource file to function. This file is called `mso
721724

722725
## Troubleshoot
723726

727+
### Previous driver version conflict
728+
724729
If you previously installed and registered a version of the driver with unixODBC, installation might fail with an error similar to:
725730

726731
```output
@@ -735,6 +740,44 @@ odbcinst -u -d -n "ODBC Driver $1 for SQL Server"
735740

736741
If uninstalling by using the `odbcinst` command fails, you can manually remove driver sections from the `odbcinst.ini` file. You can find the location of the `odbcinst.ini` file by using the command `odbcinst -j`.
737742

743+
### Package download errors on Debian and Ubuntu
744+
745+
On Debian-based distributions, you might see the following error when you install the `packages-microsoft-prod.deb` package:
746+
747+
```output
748+
dpkg-deb: error: 'packages-microsoft-prod.deb' is not a Debian format archive
749+
```
750+
751+
This error typically means the downloaded file is corrupted or incomplete, often caused by a network interruption or proxy issue. To resolve the problem:
752+
753+
1. Delete the corrupted file and download it again. For Ubuntu:
754+
755+
```bash
756+
rm packages-microsoft-prod.deb
757+
curl -sSL -O https://packages.microsoft.com/config/ubuntu/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)/packages-microsoft-prod.deb
758+
```
759+
760+
For Debian, replace `ubuntu` and use the major version number only:
761+
762+
```bash
763+
rm packages-microsoft-prod.deb
764+
curl -sSL -O https://packages.microsoft.com/config/debian/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.deb
765+
```
766+
767+
1. Verify the download is a valid Debian package (the output should include `Debian binary package`):
768+
769+
```bash
770+
file packages-microsoft-prod.deb
771+
```
772+
773+
1. If the download continues to fail, check your network connection and proxy settings, or use `wget` instead of `curl`:
774+
775+
```bash
776+
wget https://packages.microsoft.com/config/ubuntu/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)/packages-microsoft-prod.deb
777+
```
778+
779+
### Connection problems
780+
738781
If you can't make a connection to SQL Server by using the ODBC driver, see the known issues article on [troubleshooting connection problems](known-issues-in-this-version-of-the-driver.md#connectivity).
739782

740783
## Related content

docs/connect/php/installation-tutorial-linux-mac.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: "Linux and macOS Installation for the Drivers for PHP"
33
description: "In these instructions, learn how to install the Microsoft Drivers for PHP for SQL Server on Linux or macOS."
44
author: David-Engel
55
ms.author: davidengel
6-
ms.date: 02/24/2026
6+
ms.date: 03/27/2026
77
ms.service: sql
88
ms.subservice: connectivity
99
ms.topic: how-to
@@ -399,7 +399,7 @@ To test your installation, see [Testing your installation](#testing-your-install
399399
If you don't already have it, install brew as follows:
400400

401401
```bash
402-
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
402+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
403403
```
404404

405405
> [!NOTE]
@@ -482,7 +482,7 @@ sudo apachectl restart
482482

483483
To test your installation, see [Testing your installation](#testing-your-installation) at the end of this document.
484484

485-
## Testing Your Installation
485+
## Testing your installation
486486

487487
To test this sample script, create a file called testsql.php in your system's document root. This path is `/var/www/html/` on Ubuntu, Debian, and Red Hat, `/srv/www/htdocs` on SUSE, `/var/www/localhost/htdocs` on Alpine, or `/usr/local/var/www` on macOS. Copy the following script to it, replacing the server, database, username, and password as appropriate.
488488

@@ -600,10 +600,8 @@ php testsql.php
600600

601601
If running from the command line is successful but nothing shows in your browser, check the [Apache log files](https://linuxize.com/post/apache-log-files/#location-of-the-log-files). For more help, see [Support resources](support-resources-for-the-php-sql-driver.md) for places to go.
602602

603-
## See Also
603+
## Related content
604604

605-
[Getting Started with the Microsoft Drivers for PHP for SQL Server](../../connect/php/getting-started-with-the-php-sql-driver.md)
606-
607-
[Loading the Microsoft Drivers for PHP for SQL Server](../../connect/php/loading-the-php-sql-driver.md)
608-
609-
[System Requirements for the Microsoft Drivers for PHP for SQL Server](../../connect/php/system-requirements-for-the-php-sql-driver.md)
605+
- [Getting Started with the Microsoft Drivers for PHP for SQL Server](../../connect/php/getting-started-with-the-php-sql-driver.md)
606+
- [Loading the Microsoft Drivers for PHP for SQL Server](../../connect/php/loading-the-php-sql-driver.md)
607+
- [System Requirements for the Microsoft Drivers for PHP for SQL Server](../../connect/php/system-requirements-for-the-php-sql-driver.md)

0 commit comments

Comments
 (0)