Most developers work with databases through dedicated tools: some prefer SQL Server Management Studio (SSMS), others go for DBeaver or pgAdmin. Rider is usually seen as a .NET IDE and nothing more, so many people overlook the fact that it handles backend database work perfectly well too.
Why bother? First, convenience: everything stays in one IDE, so you don’t have to jump between windows. Second, Rider is surprisingly versatile. It connects to ClickHouse, Elasticsearch, and Redis, works with both SQL and NoSQL databases, suggests queries as you type, builds execution plans, and can even profile queries while you develop. And most importantly, it has a few “killer features” that really do save time and help you avoid mistakes in production.
In this article, I’ll cover five areas:
- Setting up connections and managing environments.
- Viewing and editing data in a grid.
- Consoles, queries, and profiling.
- Performance and resource consumption.
- Limitations.
Everything described here applies to Rider 2026.1.4.
Why Use Rider for Database Work?
The idea is simple: Rider lets you keep almost everything related to data storage in one place. That includes not only the usual relational databases (MS SQL, PostgreSQL, MySQL), but also ClickHouse, Elasticsearch, and key-value stores like Redis. If your team already uses Rider as its main IDE,that means less context switching and the same set of tools for everyone.
Instead of keeping a separate client for every database, you work in one interface. And in my experience, Rider has quite a few features here that more traditional tools simply don’t have.
Configuring Connections: Security and Organization
The first step is setting up connections. It sounds like routine, but even here Rider has a few pleasant surprises.
Color-coding for environments. On the main connection settings tab, you can assign a color to each database.
For example: green for local, yellow for staging, and red for production.
The top bar of the tab takes on that color, so you can see at a glance where you’re working. A small detail, but a great safeguard against costly mistakes.
Read-only mode. Connecting to a production database? Just turn this setting on, and the IDE will block any query that modifies or deletes data,whether it comes from the editor or from a script.
Even if you accidentally run an UPDATE or DROP, Rider simply won’t execute it.
Advanced connection settings. On the “Advanced” tab, besides the basic parameters, you can configure things like the command timeout. This comes in handy for heavy scripts that might not finish within the default time limit.
Filtering schemas and databases. Rider lets you show only the databases and schemas you actually need. This is especially useful when a project is split into contexts: you no longer have to scroll through an endless list of tables.
Automatic and manual refresh. The IDE refreshes the object tree on its own from time to time, but you can also refresh it manually whenever you need to. No more “magic key combinations” like in SSMS.
You can refresh the whole database, a single schema, or just one table.
These settings alone solve half of the typical problems you run into with production databases, from accidentally deleting data to simply wasting time re-syncing the schema after migrations.
Working with Data in the Grid: Faster, More Convenient, and Safer
In SSMS, you have to choose between “Select Top 1000 Rows” and “Edit Top 200 Rows”. In Rider, you just double-click any table to open it.
Viewing and Filtering
Pagination is on by default. Rider never loads a whole table at once:the default page size is 500 rows, and you can change it or turn the limit off completely. I wouldn’t recommend the latter, though. Try loading millions of rows in one go, and the IDE will quickly eat up all the memory it has.
Filter history. You get IntelliSense in every WHERE and ORDER BYfilter, and the expressions you type are saved. If you often use the same conditions, just pick them from the history and apply them again.
Keep in mind that this filter and sort history only lives until you close the IDE, i.e., for the current session.
Quick filtering and value distribution. Within the current page, you can filter by specific values and even see a mini-distribution (for example, how many rows there are for each status). It’s a handy way to do some quick ad-hoc-analysis without writing a query.
Customizable formats. If you want, you can change the display format for each data type in the settings.
Export and Views
Export to Excel and CSV. All the usual options are there: with or without headers, with different delimiters. You can copy the data straight to the clipboard or save it to a file.
Alternative views. Besides the standard table, there’s a tree view and a plain-text output. You won’t need them often, but they can come in handy.
Editing Data
Copying and pasting rows. You can copy one or more rows and paste them as new records, and all values will land in the right columns automatically.
Hints for DEFAULT values and keys. The IDE shows where auto-increment is used and where DEFAULT values are defined, which lowers the risk of mistakes when you edit data by hand.
Handling NULL. Rider clearly distinguishes between the string “null” and an actual NULL value.
There’s also a convenient “Set NULL” option for nullable fields.
Previewing changes. By default, changes aren’t sent to the database right away. All UPDATE, INSERT, and DELETE operations are collected in a preview, where you can either apply them all or roll them back. On top of that, the IDE logs every change in the “Services” panel, which is useful for auditing.
Search and Detailed View
Search within the page. Press “Ctrl + F” to quickly find values in the current selection.
Record View. An alternative way to display rows: the data is shown in a compact, readable form, along with summary statistics for the values.
Killer Features in the Grid
One-row copy. This one is a real game-changer: values copied from a single column are automatically turned into a ready-to-paste list, and dates are even wrapped in quotes. It saves a lot of time when you need to check related data.
Where Clause. If you choose the “Where Clause” format, Rider generates aWHERE expression from the selected cells.
Navigating via foreign keys. Click a cell that holds a foreign key (FK),press F4, and Rider opens the referenced table with the right WHERE clause already applied. A must-have if you often jump between related data.
You can also do this without the keyboard: when you click a cell, a navigation icon appears next to it.
Flexible column layout. You can hide columns or rearrange them, and the layout stays until you close the tab. A small thing, but it makes working with data much easier.
To bring hidden columns back, open the menu of any column and select “Show All Columns”.
Comparing tables. If you open the same table in two tabs, Rider can compare them (though only within the currently loaded page).
Console and Queries
The SQL console in Rider is a fully fledged tool with plenty of features that save you time.
Organization and Storage
Query consoles. You can create as many consoles as you like, give them names (e.g., “useful scripts” or “bug debugging”), and keep them locally.Basically, they work as your personal notebooks. They’re stored in a system folder but are always easy to reach from your project.
Query history. Rider remembers everything you’ve run. Need a query from last week? Just open the history and find it. It even deduplicates entries, so the same query isn’t saved twice.
Execution and Output
Execution context. You don’t have to select a query before running it: just put the cursor inside it and press “Ctrl + Enter”, and Rider will figure out what to run. You can also change this behavior, for example, so that “Ctrl+ Enter” runs the current statement and “Ctrl + Shift + Enter” runs the whole script.
Flexible output display. There are two modes:
– at the bottom, in a separate “Services” tab (like in most familiar clients);
– or right in the editor (inline), where you can even show several result tables side by side.
The second mode is handy for comparing datasets.
Editing results. You can change data directly in the grid under your query. All changes are tracked and logged.
Timings. Rider shows how long each query took, so you can quickly spot potential bottlenecks.
Hints and Style
IntelliSense. Rider suggests not only table and column names but can also insert whole JOIN clauses based on foreign keys. You can also expand all the fields of a table in one click, even with joins, without worrying about name conflicts.
Formatting. You can set up a separate code style for each DBMS:indentation, keyword case, line breaks, and so on. To format any query, press“Ctrl + Alt + L”. A nice touch is that the settings page includes a sample SQL script, so you can see the result in real time.
Multi-cursor editing, Find Usages, and Rename all work here just like in regular code. You can rename a variable or a table across the whole script with a single command.
Query Plans and Analysis
Explain Plan. Rider builds both text and graphical execution plans. You can see seek/scan operations, which indexes are used, and the cost of each step. The diagram is interactive, so you can drag blocks around and explore its structure.
Local history of script changes. Even if you’ve completely rewritten a script, Rider keeps its previous versions inside the IDE. If you’ve gone through several iterations and realize an earlier one was better, there’s no need to rack your brain trying to remember it. Just roll back to any previous state.
Live Templates and Generate. You can create templates for constructs you use a lot (like a SELECT statement or a function definition) and insert them with a shortcut.
Convert to subquery. A handy one: select a query, press “Alt + Enter”,and Rider wraps it in a subquery. Especially useful when you work with window functions.
Safety
Warnings for dangerous queries. By default, Rider warns you when you run an UPDATE or DELETE without a WHERE clause. That said, in my tests it didn’t always fire. Most likely, it depends on the specific settings.
Profiling and Monitoring: How Rider Helps You KeepTrack of SQL
When working with queries, you sometimes need to know which queries yourapplication actually sends to the database, how heavy they are, and where thebottlenecks are. Rider gives you a few ways to find out.
Logging Queries via the Application
The classic approach is to create a separate launch configuration (e.g.,one just for logging) and set up SQL query logging with Serilog or another logging library. In this mode, you see every query the service runs and can compare its behavior before and after your changes. You shouldn’t keep it on all the time, but for debugging or performance analysis it works perfectly.
Built-in Monitoring (Like a Mini-Prometheus)
Recent versions of Rider come with a new tool for real-time monitoring:
· It shows system metrics such as CPU usage, garbage collection (GC) activity, and memory consumption.
· You can see SQL-related counters, for example, the number of SaveChanges calls, which queries were executed, and the total number of queries.
· It also gives you basic metrics on memory and the environment.
IDE Performance and Resources
Keep in mind that working with databases in Rider does use system resources. If you remove the paging limits and try to load millions of rows onto one page, the IDE will eat memory like crazy. So it’s best to stick with the default limits or raise them carefully.
Overall, resource usage is about the same as with other tools. DBeaver may seem lighter in heavy scenarios, but in everyday use the difference is negligible. If needed, you can increase the heap size allocated to Rider (for example, from 2 GB to 4 GB), and that usually solves the problem.
Limitations and Drawbacks
For all its features, Rider still can’t do everything that specialized database clients can:
· there’s no full-fledged Activity Monitor like the one in SSMS;
· you can’t always see the full list of server-level objects (e.g., database users).
Still, for a developer’s everyday tasks, from viewing and editing data to writing and profiling queries, it’s more than enough.
Rider started out as a .NET IDE, but it has grown into a powerful database tool that can replace a whole set of separate utilities. If you haven’t tried it yet, now is a good time to open the Database settings and discover the “dark side of the Force”.
Author: Fedor Kiselev, Team Lead at ByteMinds






























































