* Expose default database collation through 'sql-database-projects' extension API. For the purpose of schema conversion we would need to know whether target database is configured as CI or CS. This will be used to produce a warning, if we detect a case-sensitive identifier, but database is configured as CI. In order to support this scenario we need to access `<DefaultCollation/>` property of the project. This change adds new method to the `ISqlProject` interface that allows to read the value of the project property. There already was similar method for the SQL version/platform (`<DSP/>` property) and while working on the change, I took an opportunity to refactor the way project properties are extracted from the XML. Original code was hardcoded in the `getProjectTargetVersion` and I extracted it into separate `evaluateProjectPropertyValue` helper, that can be used in the future by any getter or access method that is supposed to return a value of the single property. This also allows us to improve the way properties are retrieved from the XML. Today the logic is very rudimentary - we read the first matching XML element with the required name. This is not correct as it does not verify the parent to be `<PropertyGroup/>`, neither it evaluates the `Condition` attributes nor property value itself. I did not invest in this, but added a TODO there explaining that the method may not perform as expected. After the helper method was added, I updated the existing `getProjectTargetVersion` method to leverage it. The only complication here was the error throwing logic, as it was using custom error message. I preserved that, as there were tests verifying it already. For the new accessor method I did not introduce a special error message and rely on generic one I defined for use within the helper method. Additionally, for the collation we return default value of `SQL_Latin1_General_CP1_CI_AS`, if project does not have the property defined. This is what SSDT for Visual Studio shows in the UI when property is missing and I decided to align with that. Finally, I added tests for both - original `getProjectTargetVersion` and new collation extraction method to make sure they work as expected. While working on the tests, I've noticed complaints that some rejected promises were not awaited. I added missing `await`s.
Azure Data Studio
Azure Data Studio is a data management tool that enables you to work with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.
Download the latest Azure Data Studio release
| Platform |
|---|
| Windows User Installer |
| Windows System Installer |
| Windows ZIP |
| macOS ZIP |
| Linux TAR.GZ |
| Linux RPM |
| Linux DEB |
Go to our download page for more specific instructions.
Try out the latest insiders build from main:
- Windows User Installer - Insiders build
- Windows System Installer - Insiders build
- Windows ZIP - Insiders build
- macOS ZIP - Insiders build
- Linux TAR.GZ - Insiders build
See the change log for additional details of what's in this release. Go to our download page for more specific instructions.
Feature Highlights
- Cross-Platform DB management for Windows, macOS and Linux with simple XCopy deployment
- SQL Server Connection Management with Connection Dialog, Server Groups, Azure Integration and Registered Servers
- Object Explorer supporting schema browsing and contextual command execution
- T-SQL Query Editor with advanced coding features such as autosuggestions, error diagnostics, tooltips, formatting and peek definition
- Query Results Viewer with advanced data grid supporting large result sets, export to JSON\CSV\Excel, query plan and charting
- Management Dashboard supporting customizable widgets with drill-through actionable insights
- Visual Data Editor that enables direct row insertion, update and deletion into tables
- Backup and Restore dialogs that enables advanced customization and remote filesystem browsing, configured tasks can be executed or scripted
- Task History window to view current task execution status, completion results with error messages and task T-SQL scripting
- Scripting support to generate CREATE, SELECT, ALTER and DROP statements for database objects
- Workspaces with full Git integration and Find In Files support to managing T-SQL script libraries
- Modern light-weight shell with theming, user settings, full-screen support, integrated terminal and numerous other features
Here are some of these features in action.
Contributing
If you are interested in fixing issues and contributing directly to the code base, please see the document How to Contribute, which covers the following:
- How to build and run from source
- The development workflow, including debugging and running tests
- Submitting pull requests
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Localization
Azure Data Studio is localized into 10 languages: French, Italian, German, Spanish, Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, and Portuguese (Brazil). The language packs are available in the Extension Manager marketplace. Simply, search for the specific language using the extension marketplace and install. Once you install the selected language, Azure Data Studio will prompt you to restart with the new language.
Privacy Statement
The Microsoft Enterprise and Developer Privacy Statement describes the privacy statement of this software.
Contributions and "Thank You"
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
- eulercamposbarros for
Prevent connections from moving on click (#7528) - AlexFsmn for
Fixed issue where task icons got hidden if text was too long - jamesrod817 for
Tempdb (#7022) - dzsquared for
fix(snippets): ads parenthesis to sqlcreateindex snippet #7020 - devmattrick for
Update row count as updates are received #6642 - mottykohn for
In Message panel onclick scroll to line #6417 - Stevoni for
Corrected Keyboard Shortcut Execution Issue #5480 - yamatoya for
fix the format #4899 - GeoffYoung for
Fix sqlDropColumn description #4422 - AlexFsmn for
Added context menu for DBs in explorer view to backup & restore db. #2277 - sadedil for
Missing feature request: Save as XML #3729 - gbritton1 for
Removed reference to object explorer #3463 - Tarig0 for
Add Routine_Type to CreateStoredProc fixes #3257 (#3286) - oltruong for
typo fix #3025' - Thomas-S-B for
Removed unnecessary IErrorDetectionStrategy #749 - Thomas-S-B for
Simplified code #750 - rdaniels6813 for
Add query plan theme support #3031 - Ruturaj123 for
Fixed some typos and grammatical errors #3027 - PromoFaux for
Use emoji shortcodes in CONTRIBUTING.md instead of <20> #3009 - ckaczor for
Fix: DATETIMEOFFSET data types should be ISO formatted #714 - hi-im-T0dd for
Fixed sync issue with my forked master so this commit is correct #2948 - hi-im-T0dd for
Fixed when right clicking and selecting Manage-correct name displays #2794 - philoushka for
center the icon #2760 - anthonypants for
Typo #2775 - kstolte for
Fix Invalid Configuration in Launch.json #2789 - kstolte for
Fixing a reference to SQL Ops Studio #2788 - AlexFsmn
Feature: Ability to add connection name #2332 - AlexFsmn
Disabled connection name input when connecting to a server. #2566 - SebastianPfliegel
Added more saveAsCsv options #2099 - ianychoi
Fixes a typo: Mimunum -> Minimum #1994 - AlexFsmn
Fixed bug where proper file extension wasn't appended to the filename. #2151 - AlexFsmn
Added functionality for adding any file to import wizard #2329 - AlexFsmn
Fixed background issue when copying a chart to clipboard #2215 - AlexFsmn
Fixed problem where vertical charts didn't display labels correctly. #2263 - AlexFsmn
Fixed Initial values for charts to match visuals #2266 - AlexFsmn
Renamed chart option labels #2264 - AlexFsmn
Added feature for the opening file after exporting to CSV/XLS/JSON & query files #2216 - AlexFsmm
Get Connection String should copy to clipboard #2175 - lanceklinger
Fix for double-clicking column handle in results table #1504 - westerncj for
Removed duplicate contribution from README.md (#753) - ntovas for
Fix for duplicate extensions shown in "Save File" dialog. (#779) - SebastianPfliegel for
Add cursor snippet (#475) - mikaoelitiana for the fix:
revert README and CONTRIBUTING after last VSCode merge (#574) - alextercete for
Reinstate menu item to install from VSIX (#682) - alextercete for
Fix "No extension gallery service configured" error (#427) - mwiedemeyer for
Fix #58: Default sort order for DB size widget (#111) - AlexTroshkin for
Show disconnect in context menu only when connectionProfile connected (#150) - AlexTroshkin for
Fix #138: Invalid syntax color highlighting (identity not highlighting) (#140)) - stebet for
Fix #153: Fixing sql snippets that failed on a DB with a case-sensitive collation. (#152) - SebastianPfliegel
Remove sqlExtensionHelp (#312) - olljanat for
Implemented npm version check (#314) - Adam Machanic for helping with the
whoisactiveextension
And of course, we'd like to thank the authors of all upstream dependencies. Please see a full list in the ThirdPartyNotices.txt
License
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Source EULA.