<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kunal Rathi, Author at AzureOps</title>
	<atom:link href="https://azureops.org/articles/author/kunal-rathi/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Notable things about Cloud, Data and DevOps.</description>
	<lastBuildDate>Mon, 20 Apr 2026 18:27:18 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://i0.wp.com/azureops.org/wp-content/uploads/2021/04/cropped-android-chrome-512x512-1.png?fit=32%2C32&#038;ssl=1</url>
	<title>Kunal Rathi, Author at AzureOps</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">190208641</site>	<item>
		<title>DP-700 Certification Exam Preparation Guide</title>
		<link>https://azureops.org/articles/dp-700-exam-preparation-guide/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 15:54:09 +0000</pubDate>
				<category><![CDATA[Certification]]></category>
		<category><![CDATA[Microsoft Fabric]]></category>
		<category><![CDATA[Fabric certification]]></category>
		<category><![CDATA[Microsoft Fabric data engineer certification]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=9265</guid>

					<description><![CDATA[<p>Prepare for the DP-700 exam and master Microsoft Fabric for data engineering solutions and analytics with this guide.</p>
<p>The post <a href="https://azureops.org/articles/dp-700-exam-preparation-guide/">DP-700 Certification Exam Preparation Guide</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="">The&nbsp;<strong>DP-700: Implementing Data Engineering Solutions Using Microsoft Fabric</strong>&nbsp;is Microsoft&#8217;s certification for the&nbsp;<em>Fabric Data Engineer Associate</em>&nbsp;role. It validates your ability to design, implement, monitor, and optimize data engineering solutions inside Microsoft Fabric, Microsoft&#8217;s unified analytics platform that brings together data engineering, data science, real-time analytics, and Power BI under one roof.</p>



<p class="">If you&#8217;ve worked with Azure Synapse, Azure Data Factory, Spark, or SQL-based ETL pipelines before, you&#8217;ll find many of the core concepts familiar. The key shift is learning how those concepts translate into Fabric&#8217;s integrated, SaaS-style environment.</p>



<h2 class="wp-block-heading">Who Should Take This Exam?</h2>



<p class="">According to the&nbsp;<a href="https://learn.microsoft.com/en-us/credentials/certifications/resources/study-guides/dp-700" target="_blank" rel="noreferrer noopener">official Microsoft study guide</a>, you&#8217;re the right candidate if your day-to-day work involves:</p>



<ul class="wp-block-list">
<li class="">Ingesting and transforming data using SQL, PySpark, or KQL</li>



<li class="">Designing data architectures and orchestration workflows</li>



<li class="">Securing and managing analytics solutions</li>



<li class="">Monitoring, troubleshooting, and optimizing data pipelines</li>
</ul>



<p class="">This exam is particularly valuable if you&#8217;re transitioning from the retired&nbsp;<strong>DP-203 (Azure Data Engineer Associate)</strong>&nbsp;certification. The concepts are largely the same; ETL/ELT, data transformation, data warehouse design, but DP-700 tests them through the lens of Fabric&#8217;s unified toolset.</p>



<p class="has-pale-cyan-blue-background-color has-background"><strong>Note:</strong><br><strong>DP-700 vs DP-600:</strong>&nbsp;If you&#8217;re more focused on Power BI, DAX, and analytics engineering, look at DP-600 (Fabric Analytics Engineer). DP-700 is strictly the data engineering path; SQL, PySpark, KQL, pipelines, and lakehouses.</p>



<h2 class="wp-block-heading">Exam Format and Key Details</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Detail</th><th>Info</th></tr></thead><tbody><tr><td>Exam Name</td><td>DP-700: Implementing Data Engineering Solutions Using Microsoft Fabric</td></tr><tr><td>Certification</td><td>Microsoft Certified: Fabric Data Engineer Associate</td></tr><tr><td>Duration</td><td>~100 minutes</td></tr><tr><td>Passing Score</td><td>700 out of 1000</td></tr><tr><td>Exam Price</td><td>~$165 USD (varies by region)</td></tr><tr><td>Question Types</td><td>Multiple choice, scenario-based, simulation tasks</td></tr><tr><td>Validity</td><td>1 year (free annual renewal via Microsoft Learn)</td></tr><tr><td>Open Book?</td><td>Yes — you can access Microsoft Learn during the exam</td></tr></tbody></table></figure>



<p class="">One important note:&nbsp;<strong>the exam is open book</strong>. You can access Microsoft Learn docs during the test. This doesn&#8217;t mean you can wing it. Scenario-based questions require genuine understanding, not just Ctrl+F searching, but it does mean you should practice navigating the docs quickly, especially KQL/PySpark syntax pages.</p>



<h2 class="wp-block-heading">What Does the Exam Actually Test?</h2>



<p class="">The exam is divided into three equally weighted domains, each comprising roughly 30–35% of the total score:</p>



<h3 class="wp-block-heading">1. Implement and Manage an Analytics Solution (30–35%)</h3>



<p class="">This domain covers the foundational setup and governance layer of Fabric. Expect questions on:</p>



<ul class="wp-block-list">
<li class=""><strong>Workspace configuration:</strong>&nbsp;Spark settings, domain settings, OneLake settings</li>



<li class=""><strong>Lifecycle management:</strong>&nbsp;Git integration, deployment pipelines, database projects</li>



<li class=""><strong>Security and governance:</strong>&nbsp;Workspace-level and item-level access controls, row/column/object-level security, dynamic data masking, sensitivity labels</li>



<li class=""><strong>Orchestration:</strong>&nbsp;When to use Dataflow Gen2 vs. pipelines vs. notebooks; event-based triggers and scheduling</li>
</ul>



<h3 class="wp-block-heading">2. Ingest and Transform Data (30–35%)</h3>



<p class="">The core data engineering domain. You need solid understanding of both batch and streaming patterns:</p>



<ul class="wp-block-list">
<li class=""><strong>Loading patterns:</strong>&nbsp;Full loads vs. incremental loads, dimensional model preparation, streaming ingestion</li>



<li class=""><strong>Batch ingestion:</strong>&nbsp;Pipelines, shortcuts, mirroring, continuous integration from OneLake</li>



<li class=""><strong>Transformations:</strong>&nbsp;Power Query (M), PySpark, T-SQL, KQL — knowing which tool to use in which scenario is key</li>



<li class=""><strong>Data quality:</strong>&nbsp;Handling duplicates, missing values, late-arriving data, deduplication, aggregations</li>



<li class=""><strong>Streaming:</strong>&nbsp;Eventstreams, Spark Structured Streaming, KQL windowing functions, Eventhouse vs. Lakehouse decisions</li>
</ul>



<h3 class="wp-block-heading">3. Monitor and Optimize an Analytics Solution (30–35%)</h3>



<p class="">This domain tests operational maturity — what you do after the pipeline is built:</p>



<ul class="wp-block-list">
<li class=""><strong>Monitoring:</strong>&nbsp;Data ingestion, transformation, semantic model refresh, setting up alerts</li>



<li class=""><strong>Troubleshooting:</strong>&nbsp;Resolving errors in pipelines, dataflows, notebooks, Eventhouse, Eventstreams, T-SQL, and shortcuts</li>



<li class=""><strong>Optimization:</strong>&nbsp;Lakehouse table optimization, pipeline tuning, data warehouse query performance, Spark performance, KQL optimization</li>
</ul>



<h2 class="wp-block-heading">Best Study Resources for DP-700</h2>



<h3 class="wp-block-heading">1. Microsoft Learn Official Learning Path (Free)</h3>



<p class="">This is your&nbsp;<strong>single most important resource</strong>. Microsoft&#8217;s official learning path maps directly to the exam objectives and includes both reading modules and hands-on labs inside a real Fabric trial environment.</p>



<p class="">Start here:&nbsp;<a href="https://learn.microsoft.com/en-us/credentials/certifications/exams/dp-700" target="_blank" rel="noreferrer noopener">DP-700 Exam Page on Microsoft Learn</a></p>



<p class="">Key modules to complete:</p>



<ul class="wp-block-list">
<li class="">Get started with Microsoft Fabric</li>



<li class="">Implement a Lakehouse in Microsoft Fabric</li>



<li class="">Implement real-time intelligence with Microsoft Fabric</li>



<li class="">Implement a data warehouse in Microsoft Fabric</li>



<li class="">Monitor and optimize data solutions in Microsoft Fabric</li>
</ul>



<p class=""><strong>Pro tip:</strong>&nbsp;Since the exam is open book, actively practice navigating from the Learn homepage to Fabric docs, PySpark syntax references, and KQL documentation. Speed matters during the exam.</p>



<h3 class="wp-block-heading">2. Official Microsoft Study Guide (Free)</h3>



<p class="">Download the&nbsp;<a href="https://learn.microsoft.com/en-us/credentials/certifications/resources/study-guides/dp-700" target="_blank" rel="noreferrer noopener">DP-700 Study Guide</a>&nbsp;and use it as your checklist. Every bullet point in the &#8220;Skills Measured&#8221; section is a potential exam topic. Check each one off as you study it — this ensures you don&#8217;t have blind spots.</p>



<h3 class="wp-block-heading">3. Free Practice Assessment (Free)</h3>



<p class="">Microsoft offers a free official practice assessment on Microsoft Learn. It won&#8217;t give you the actual exam questions, but it accurately reflects the style, format, and difficulty. Take it early in your prep to identify weak areas, then again at the end to gauge readiness. This is an underused resource — don&#8217;t skip it.</p>



<h3 class="wp-block-heading"> 4. YouTube Free Full Course</h3>



<p class="">A solid free video course can help if you prefer watching over reading, <a href="https://youtu.be/tynojQxL9WM?si=07izCAlgM0FxP1nm">this free YouTube course by Adam Marczak</a> is a great option that cover the full exam syllabus, including Fabric architecture, lakehouse concepts, pipelines, notebooks, and real-time analytics. Watch the full video once, then revisit sections on topics where you feel less confident.</p>



<h3 class="wp-block-heading"> 5. Udemy Course Paid But Worth It</h3>



<p class="">For structured, in-depth coverage, Phillip Burton&#8217;s <a href="https://www.udemy.com/course/dp-700-implementing-data-engineering-solutions-using-fabric/">Microsoft DP-700 prep: Fabric Data Engineer Associate</a><strong> </strong>on Udemy is the top-rated option. It covers PySpark, SQL, KQL, and Fabric from scratch with no prior language experience required. Wait for a Udemy sale and you can get it for under $20..</p>



<h3 class="wp-block-heading"> 6. Microsoft Applied Skills Labs</h3>



<p class="">These are end-to-end scenario labs from Microsoft that simulate real Fabric workflows. Two are especially relevant:</p>



<ul class="wp-block-list">
<li class=""><a href="https://learn.microsoft.com/en-us/credentials/applied-skills/implement-a-real-time-intelligence-solution-with-microsoft-fabric/" target="_blank" rel="noreferrer noopener">APL-3008: Implement a Real-Time Intelligence solution with Microsoft Fabric</a></li>



<li class=""><a href="https://learn.microsoft.com/en-us/credentials/applied-skills/work-with-data-warehouses-using-microsoft-fabric/" target="_blank" rel="noreferrer noopener">APL-3010: Implement a data warehouse in Microsoft Fabric</a></li>
</ul>



<p class="">Completing these builds the hands-on confidence you need for simulation-style exam questions.</p>



<h2 class="wp-block-heading">How to Get a Free (or Discounted) DP-700 Voucher</h2>



<p class="">You can often secure a free or 50% discounted voucher by completing a <strong>Microsoft Cloud Skills Challenge</strong> (like &#8220;30 Days to Learn It&#8221;) or participating in the <strong>Fabric Community &#8220;Get Certified&#8221;</strong> program <a href="https://community.fabric.microsoft.com/t5/custom/page/page-id/campaign_form?campaignID=Q0FNUEFJR05fMTc2ODUyNjYwMzYzOQ==" target="_blank" rel="noreferrer noopener">here</a>. Additionally, check major events like Microsoft Ignite for limited-time free offers, or use the Enterprise Skills Initiative (ESI) portal if you work for a Microsoft Partner to see if your company covers the full cost.</p>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h2 class="wp-block-heading">Key Topics to Master (With Practical Focus)</h2>



<h3 class="wp-block-heading">Fabric Architecture: Know What Lives Where</h3>



<p class="">You must clearly understand the purpose and appropriate use case for each Fabric item:</p>



<ul class="wp-block-list">
<li class=""><strong>OneLake</strong>&nbsp;— the single unified storage layer; think of it as Azure Data Lake built into Fabric</li>



<li class=""><strong>Lakehouse</strong>&nbsp;— Delta Lake-based storage for open-format files; use for big data, ML, and flexible analytical workloads</li>



<li class=""><strong>Warehouse</strong>&nbsp;— T-SQL-based, fully managed data warehouse; use for structured, enterprise-scale BI workloads</li>



<li class=""><strong>Eventhouse</strong>&nbsp;— time-series and streaming analytics using KQL; replaces the old ADX in Fabric</li>



<li class=""><strong>Eventstream</strong>&nbsp;— real-time data ingestion pipeline; routes streaming data to Eventhouse, Lakehouse, or other destinations</li>
</ul>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2026/04/Microsoft-Fabric-Architecture.png?ssl=1"><img decoding="async" width="1268" height="606" data-attachment-id="9386" data-permalink="https://azureops.org/articles/dp-700-exam-preparation-guide/microsoft-fabric-architecture/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2026/04/Microsoft-Fabric-Architecture.png?fit=1268%2C606&amp;ssl=1" data-orig-size="1268,606" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Microsoft Fabric Architecture" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2026/04/Microsoft-Fabric-Architecture.png?fit=1200%2C574&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2026/04/Microsoft-Fabric-Architecture.png?fit=1200%2C574&amp;ssl=1" alt="" class="wp-image-9386" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2026/04/Microsoft-Fabric-Architecture.png?w=1268&amp;ssl=1 1268w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/04/Microsoft-Fabric-Architecture.png?resize=300%2C143&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/04/Microsoft-Fabric-Architecture.png?resize=1200%2C574&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/04/Microsoft-Fabric-Architecture.png?resize=768%2C367&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/04/Microsoft-Fabric-Architecture.png?resize=450%2C215&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/04/Microsoft-Fabric-Architecture.png?resize=600%2C287&amp;ssl=1 600w" sizes="(max-width: 1268px) 100vw, 1268px" /></a></figure>



<h3 class="wp-block-heading">Lakehouse vs. Warehouse: The Most Common Exam Trap</h3>



<p class="">Many candidates stumble on scenario questions that ask them to choose between a Lakehouse and a Warehouse. The general rule:</p>



<ul class="wp-block-list">
<li class="">Use a&nbsp;<strong>Lakehouse</strong>&nbsp;when you need open format storage, machine learning access, or heterogeneous data (files + tables)</li>



<li class="">Use a&nbsp;<strong>Warehouse</strong>&nbsp;when the workload is primarily SQL-based, requires strong ACID transactions, or serves BI tools via a traditional SQL endpoint</li>
</ul>



<p class="">Also understand the&nbsp;<strong>medallion architecture</strong>&nbsp;(Bronze → Silver → Gold) and when to apply it inside a Lakehouse.</p>



<h3 class="wp-block-heading">Choosing the Right Transformation Tool</h3>



<p class="">A frequent question type presents a scenario and asks which tool to use for transformation. Here&#8217;s the mental model:</p>



<ul class="wp-block-list">
<li class=""><strong>Power Query (M) / Dataflow Gen2</strong>&nbsp;— best for low-code, analyst-friendly transformations; no coding required</li>



<li class=""><strong>PySpark / Notebooks</strong>&nbsp;— best for large-scale transformations, complex logic, ML pipelines</li>



<li class=""><strong>T-SQL</strong>&nbsp;— best for Warehouse-based transformations; familiar to SQL Server developers</li>



<li class=""><strong>KQL</strong>&nbsp;— best for time-series and streaming data in Eventhouse</li>
</ul>



<h3 class="wp-block-heading">Incremental Loads and Slowly Changing Dimensions</h3>



<p class="">The exam tests dimensional modeling knowledge more than most candidates expect. Make sure you understand:</p>



<ul class="wp-block-list">
<li class="">Full load vs. incremental load patterns</li>



<li class="">Slowly Changing Dimensions (SCD) Types 1, 2, and 3</li>



<li class="">Star schema design: facts, dimensions, surrogate keys</li>



<li class="">Handling late-arriving and duplicate data</li>
</ul>



<h3 class="wp-block-heading">Real-Time Intelligenc, Don&#8217;t Skip This</h3>



<p class="">Real-time analytics is a significant portion of the exam and is often under-studied. Focus on:</p>



<ul class="wp-block-list">
<li class="">KQL fundamentals: queries, window functions, aggregations</li>



<li class="">Eventhouse architecture and when to use it</li>



<li class="">Eventstream routing to different destinations</li>



<li class="">Spark Structured Streaming vs. KQL-based streaming, know the trade-offs</li>



<li class="">Accelerated shortcuts vs. non-accelerated shortcuts in Real-Time Intelligence</li>
</ul>



<h3 class="wp-block-heading">Security and Governance</h3>



<p class="">Security questions are common and straightforward if you study them. Know the difference between:</p>



<ul class="wp-block-list">
<li class="">Workspace-level vs. item-level access controls</li>



<li class="">Row-level security (RLS), column-level security (CLS), object-level security (OLS)</li>



<li class="">Dynamic data masking — how and when to apply it</li>



<li class="">Sensitivity labels and item endorsement</li>



<li class="">OneLake security configuration</li>
</ul>



<h2 class="wp-block-heading">Practical 3-Week Study Plan</h2>



<p class="">This plan assumes you have some prior experience with data engineering or Azure. Adjust the timeline based on your background.</p>



<h3 class="wp-block-heading">Week 1 : Build Foundations</h3>



<ul class="wp-block-list">
<li class="">Read through the DP-700 Study Guide and create a topic checklist</li>



<li class="">Watch a full YouTube course covering the exam syllabus</li>



<li class="">Sign up for a Microsoft Fabric trial and explore the interface</li>



<li class="">Take the Microsoft Learn free practice assessment to identify your weak areas</li>
</ul>



<h3 class="wp-block-heading">Week 2 : Go Deep with Microsoft Learn</h3>



<ul class="wp-block-list">
<li class="">Complete the official Microsoft Learn modules (don&#8217;t skip the hands-on labs)</li>



<li class="">Build a simple Lakehouse → pipeline → Warehouse workflow yourself</li>



<li class="">Practice writing basic KQL queries and PySpark transformations</li>



<li class="">Work through the APL-3008 and APL-3010 Applied Skills labs</li>
</ul>



<h3 class="wp-block-heading">Week 3 : Review, Practice, and Exam Prep</h3>



<ul class="wp-block-list">
<li class="">Revisit all weak areas identified in Week 1</li>



<li class="">Take the Microsoft practice assessment again; aim for 80%+ before booking the exam</li>



<li class="">Practice navigating Microsoft Learn docs quickly (for the open-book exam)</li>



<li class="">Save KQL/PySpark/T-SQL syntax pages as bookmarks for exam day</li>



<li class="">If you previously had DP-203, also take that practice test — there&#8217;s significant KQL and pipeline overlap</li>
</ul>



<h2 class="wp-block-heading">Exam Day Tips</h2>



<ul class="wp-block-list">
<li class=""><strong>Run the Pearson VUE hardware check a week before</strong>&nbsp;— don&#8217;t discover your webcam or network has issues on exam day</li>



<li class=""><strong>Bookmark key Microsoft Learn pages</strong>&nbsp;before the exam: PySpark syntax, KQL reference, T-SQL docs, Fabric pipeline documentation</li>



<li class=""><strong>Read every scenario question carefully</strong>&nbsp;— the &#8220;best&#8221; answer often hinges on one specific constraint mentioned in the scenario (cost, latency, existing tools, team skillset)</li>



<li class=""><strong>Don&#8217;t over-index on code syntax</strong>&nbsp;— the exam is more about choosing the right tool and architecture than writing perfect code</li>



<li class=""><strong>Flag and move on</strong>&nbsp;— if a question stumps you, flag it and come back; don&#8217;t burn 10 minutes on one question</li>



<li class=""><strong>DP-700 does NOT test Power BI or DAX</strong>&nbsp;— don&#8217;t waste study time on report building or visual design</li>
</ul>



<h2 class="wp-block-heading">Is DP-700 certification worth it in 2026?</h2>



<p class="">Yes, and the timing is good. Microsoft Fabric is seeing rapid enterprise adoption, with a significant portion of Fortune 500 companies already on the platform. As organizations migrate from fragmented Azure data services (Synapse, ADF, ADX) to the unified Fabric platform, demand for certified Fabric Data Engineers is growing across finance, healthcare, e-commerce, and logistics.</p>



<p class="">The certification is also&nbsp;<strong>low-risk to maintain</strong>: renewal is free via a short online assessment on Microsoft Learn, keeping your credential current as Fabric evolves (which it does — monthly).</p>



<h2 class="wp-block-heading">Final Thoughts</h2>



<p class="">DP-700 is a well-designed exam that rewards genuine understanding over rote memorization. The open-book format means you can look up syntax, but you still need to know which tool to reach for in each situation, and why.</p>



<p class="">The most effective preparation combines three things: the official Microsoft Learn modules for structured coverage, hands-on labs inside a real Fabric trial for muscle memory, and the free practice assessment to measure your readiness honestly. You don&#8217;t need expensive courses to pass, but you do need to actually build things in Fabric, not just read about them.</p>



<p class="">Good luck and once you pass, remember to bookmark the renewal reminder. The free annual renewal keeps your certification current and takes only a few hours. It&#8217;s worth doing.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>
<p>The post <a href="https://azureops.org/articles/dp-700-exam-preparation-guide/">DP-700 Certification Exam Preparation Guide</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">9265</post-id>	</item>
		<item>
		<title>Compare Azure SQL Database Schema Using sqlpackage</title>
		<link>https://azureops.org/articles/compare-azure-sql-database-schema-using-sqlpackage/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Sat, 10 Jan 2026 19:16:23 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SQL Database]]></category>
		<category><![CDATA[SQL Server]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=9188</guid>

					<description><![CDATA[<p>Learn how to compare two Azure SQL Database Schema effectively and generate delta scripts for seamless deployment.</p>
<p>The post <a href="https://azureops.org/articles/compare-azure-sql-database-schema-using-sqlpackage/">Compare Azure SQL Database Schema Using sqlpackage</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="">When working with Azure SQL Databases, it is quite common to have multiple environments such as <strong>Dev</strong>, <strong>Test</strong>, <strong>UAT</strong>, and <strong>Production</strong>. Over time, schema drift between these environments becomes inevitable. Before deploying changes to production, it is critical to understand <em>exactly</em> what is different and what will change.</p>



<p class="">In this article, we will see how to <strong>compare Azure SQL database schema using <code>sqlpackage.exe</code></strong> and generate a <strong>delta script</strong> that shows the differences in a controlled and repeatable way. The approach and flow are similar to the DACPAC-based comparison strategy discussed earlier on AzureOps.</p>



<h2 class="wp-block-heading">Why use sqlpackage for database comparison?</h2>



<p class=""><code><a href="https://learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage?view=sql-server-ver17" target="_blank" rel="noreferrer noopener">sqlpackage.exe</a></code> is a command-line utility provided by Microsoft that works with <strong>DACPAC</strong> and <strong>BACPAC</strong> files. Using <code>sqlpackage</code>, you can:</p>



<ul class="wp-block-list">
<li class="">Compare two databases using DACPACs</li>



<li class="">Generate a deployment (delta) script</li>



<li class="">Control destructive changes explicitly</li>



<li class="">Automate comparisons in CI/CD pipelines</li>
</ul>



<p class="">For Azure SQL Database scenarios, this method is especially useful when direct schema comparison tools are not available or when automation is required.</p>



<h2 class="wp-block-heading">Creating a DACPAC</h2>



<p class="">To compare database schemas using <code>sqlpackage</code>, you first need a <strong>DACPAC</strong> file, which represents the database schema.</p>



<p class="">You can create a DACPAC using <strong>sqlpackage.exe</strong>, <strong>SSMS</strong>, or <strong>Visual Studio</strong>. For a quick, step-by-step guide covering all methods, refer to this <a href="https://azureops.org/articles/dacpac-sql-server-database/?utm_source=chatgpt.com" target="_blank" rel="noreferrer noopener">article</a>.</p>



<h2 class="wp-block-heading">Installing <code>sqlpackage</code> Before You Begin</h2>



<p class="">Before you can compare two Azure SQL database schemas using <code>sqlpackage</code>, you need to <strong>install the <code>sqlpackage</code> command-line utility</strong> on your machine. <code>sqlpackage.exe</code> is the same tool that Powers the DACPAC deployments discussed in this site’s previous article on deploying DACPACs to Azure SQL Database.</p>



<p class="">Here are the recommended ways to install <code>sqlpackage</code>, depending on your environment:</p>



<h3 class="wp-block-heading">Option 1 — Install as a .NET Global Tool (Cross-Platform)</h3>



<p class="">The easiest and most modern way to install <code>sqlpackage</code> on <strong>Windows, macOS, or Linux</strong> is using the <strong>.NET SDK tool installer</strong>. This gives you the <code>sqlpackage</code> command directly on your PATH. Run below command in command prompt.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; gutter: false; title: ; notranslate">
dotnet tool install --global Microsoft.SqlPackage
</pre></div>


<p class="">If you already have it installed and want to update to the latest version, run:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; gutter: false; title: ; notranslate">
dotnet tool update --global Microsoft.SqlPackage
</pre></div>


<p class="">This method works well for local development and automation scripts, including PowerShell and CI/CD pipelines.</p>



<h3 class="wp-block-heading">Option 2 — Download Standalone Zip (Windows / macOS / Linux)</h3>



<p class="">If you don’t use the .NET SDK or prefer a <strong>self-contained download</strong>, Microsoft also publishes standalone builds of <code>sqlpackage</code>:</p>



<ol class="wp-block-list">
<li class="">Visit the official SqlPackage<a href="https://learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-download?view=sql-server-ver17" target="_blank" rel="noreferrer noopener"> download page</a> on Microsoft Docs.</li>



<li class="">Download the appropriate zip for your OS.</li>



<li class="">Extract and place the folder somewhere on your system (e.g., <code>C:\tools\sqlpackage</code>).</li>



<li class="">Add the folder containing <code>sqlpackage.exe</code> to your system PATH so you can call it from any terminal.</li>
</ol>



<p class="">This method is useful if you want to avoid installing .NET tools or need to bundle <code>sqlpackage</code> with deployment scripts.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/image.png?ssl=1"><img decoding="async" width="1090" height="420" data-attachment-id="9206" data-permalink="https://azureops.org/articles/compare-azure-sql-database-schema-using-sqlpackage/image-46/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/image.png?fit=1090%2C420&amp;ssl=1" data-orig-size="1090,420" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/image.png?fit=1090%2C420&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/image.png?fit=1090%2C420&amp;ssl=1" alt="compare Azure SQL Database Schema" class="wp-image-9206" style="width:809px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/image.png?w=1090&amp;ssl=1 1090w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/image.png?resize=300%2C116&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/image.png?resize=768%2C296&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/image.png?resize=450%2C173&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/image.png?resize=600%2C231&amp;ssl=1 600w" sizes="(max-width: 1090px) 100vw, 1090px" /></a></figure>



<h2 class="wp-block-heading">High-level approach</h2>



<p class="">The comparison process consists of three simple steps:</p>



<ol class="wp-block-list">
<li class="">Export both Azure SQL databases to DACPAC files</li>



<li class="">Use <code>sqlpackage.exe</code> with <code>/Action:Script</code></li>



<li class="">Review the generated delta script before applying it</li>
</ol>



<p class="">In this article, we focus on <strong>step 2</strong>, assuming you already have DACPAC files for both databases.</p>



<h2 class="wp-block-heading">Sample scenario</h2>



<p class="">Let us assume the following setup:</p>



<ul class="wp-block-list">
<li class=""><strong>Source (baseline)</strong> database: <code>sales-test-db</code></li>



<li class=""><strong>Target (to be aligned)</strong> database: <code>sales-prod-db</code></li>
</ul>



<p class="">Our goal is to compare Azure SQL Database schema and generate a SQL script that shows what changes are required to make <strong>Production</strong> match <strong>Test</strong>.</p>



<h2 class="wp-block-heading">Sample sqlpackage command</h2>



<p class="">Below is a sample <code>sqlpackage.exe</code> command to compare two DACPAC files and generate a delta script.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
sqlpackage.exe ^
  /Action:Script ^
  /SourceFile:&quot;C:\Dacpacs\sales-test-db.dacpac&quot; ^
  /TargetFile:&quot;C:\Dacpacs\sales-prod-db.dacpac&quot; ^
  /TargetDatabaseName:&quot;sales-prod-db&quot; ^
  /OutputPath:&quot;C:\Dacpacs\sales_test_vs_prod_delta.sql&quot; ^
  /p:DropObjectsNotInSource=True

</pre></div>


<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/sqlpackage-to-compare-azure-sql-database-schema.png?ssl=1"><img loading="lazy" decoding="async" width="1153" height="221" data-attachment-id="9192" data-permalink="https://azureops.org/articles/compare-azure-sql-database-schema-using-sqlpackage/sqlpackage-to-compare-azure-sql-database-schema/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/sqlpackage-to-compare-azure-sql-database-schema.png?fit=1153%2C221&amp;ssl=1" data-orig-size="1153,221" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="sqlpackage to compare azure sql database schema" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/sqlpackage-to-compare-azure-sql-database-schema.png?fit=1153%2C221&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/sqlpackage-to-compare-azure-sql-database-schema.png?fit=1153%2C221&amp;ssl=1" alt="compare Azure SQL Database Schema using sqlpackage utility" class="wp-image-9192" style="aspect-ratio:5.217492752598458;width:881px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/sqlpackage-to-compare-azure-sql-database-schema.png?w=1153&amp;ssl=1 1153w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/sqlpackage-to-compare-azure-sql-database-schema.png?resize=300%2C58&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/sqlpackage-to-compare-azure-sql-database-schema.png?resize=768%2C147&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/sqlpackage-to-compare-azure-sql-database-schema.png?resize=450%2C86&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2026/01/sqlpackage-to-compare-azure-sql-database-schema.png?resize=600%2C115&amp;ssl=1 600w" sizes="(max-width: 1153px) 100vw, 1153px" /></a></figure>



<p class="">In case you want to use PowerShell ISE, you can use below script.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: powershell; title: ; notranslate">
# Path to sqlpackage.exe
$sqlPackagePath = &quot;C:\Program Files\Microsoft SQL Server\160\DAC\bin\sqlpackage.exe&quot;

# DACPAC paths
$SourceDacpacPath = &quot;C:\Dacpacs\sales-test-db.dacpac&quot;
$TargetDacpacPath = &quot;C:\Dacpacs\sales-prod-db.dacpac&quot;

# Target database name
$TargetDatabaseName = &quot;sales-prod-db&quot;

# Output script path
$OutputScriptPath = &quot;C:\Dacpacs\sales_test_vs_prod_delta.sql&quot;

# Publish options
$DropObjectsNotInSource = &quot;True&quot;

# Execute sqlpackage
&amp; $sqlPackagePath `
    /Action:Script `
    /SourceFile:$SourceDacpacPath `
    /TargetFile:$TargetDacpacPath `
    /TargetDatabaseName:$TargetDatabaseName `
    /OutputPath:$OutputScriptPath `
    /p:DropObjectsNotInSource=$DropObjectsNotInSource

</pre></div>


<p class="">This command does <strong>not</strong> apply any changes. It only generates a SQL script that you can review and execute manually if needed.</p>



<h2 class="wp-block-heading">Understanding each parameter</h2>



<p class="">Let us break down all the parameters used in the command.</p>



<p class=""><strong>/Action:Script</strong></p>



<p class="">Specifies that <code>sqlpackage</code> should <strong>generate a deployment script</strong> instead of publishing changes directly to a database. This is the safest option when comparing environments like Test and Production.</p>



<p class=""><strong>/SourceFile</strong></p>



<p class="">Path to the <strong>source DACPAC</strong> file. This represents the <em>desired state</em> of the database.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; gutter: false; title: ; notranslate">
/SourceFile:&quot;C:\Dacpacs\sales-test-db.dacpac&quot;
</pre></div>


<p class="">In our example, the Test database schema is treated as the source of truth.</p>



<p class=""><strong>/TargetFile</strong></p>



<p class="">Path to the <strong>target DACPAC</strong> file. This represents the database you want to compare against.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; gutter: false; title: ; notranslate">
/TargetFile:&quot;C:\Dacpacs\sales-prod-db.dacpac&quot;
</pre></div>


<p class="">The generated script will contain changes required to make the target match the source.</p>



<p class=""><strong>/TargetDatabaseName</strong></p>



<p class="">Logical name of the target database.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; gutter: false; title: ; notranslate">
/TargetDatabaseName:&quot;sales-prod-db&quot;
</pre></div>


<p class="">This parameter is mandatory for the <code>Script</code> action, even when you are comparing DACPAC-to-DACPAC.</p>



<p class=""><strong>/OutputPath</strong></p>



<p class="">Specifies where the generated delta script should be written.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; gutter: false; title: ; notranslate">
/OutputPath:&quot;C:\Dacpacs\sales_test_vs_prod_delta.sql&quot;
</pre></div>


<p class="">Always review this script carefully before executing it in Production.</p>



<p class=""><strong>/p:DropObjectsNotInSource</strong></p>



<p class="">Controls whether objects that exist in the target but not in the source should be dropped.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; gutter: false; title: ; notranslate">
/p:DropObjectsNotInSource=True
</pre></div>


<ul class="wp-block-list">
<li class=""><code>True</code> – Generates <code>DROP</code> statements for extra objects in the target</li>



<li class=""><code>False</code> – Preserves objects that exist only in the target</li>
</ul>



<p class="">⚠️ <strong>Use this option with caution</strong>, especially for Production databases.</p>



<h2 class="wp-block-heading">Common additional publish parameters</h2>



<p class="">Depending on your requirements, you may also consider these commonly used parameters:</p>



<ul class="wp-block-list">
<li class=""><code>/p:BlockOnPossibleDataLoss=False</code></li>



<li class=""><code>/p:IgnorePermissions=True</code></li>



<li class=""><code>/p:IgnoreRoleMembership=True</code></li>



<li class=""><code>/p:ExcludeObjectTypes=Users;Logins</code></li>



<li class=""><code>/p:ExcludeSchemaValidation=True</code></li>
</ul>



<p class="">These options help fine-tune the comparison and avoid unwanted differences.</p>



<h2 class="wp-block-heading">Best practices</h2>



<ul class="wp-block-list">
<li class="">Always generate a script first (<code>/Action:Script</code>)</li>



<li class="">Review the delta script line by line</li>



<li class="">Never auto-apply changes to Production without validation</li>



<li class="">Store DACPACs and scripts in source control</li>



<li class="">Use the same approach in CI/CD pipelines for consistency</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="">Comparing two Azure SQL databases using <code>sqlpackage.exe</code> is a reliable and automation-friendly approach. By working with DACPAC files and generating delta scripts, you gain full visibility and control over schema changes before they reach Production.</p>



<p class="">This method fits well into modern DevOps workflows and provides a safe alternative to manual or GUI-based comparisons.</p>



<p class="">If you regularly manage schema changes across multiple environments, <code>sqlpackage</code> should be a core part of your database deployment tool.</p>



<p class="has-light-green-cyan-background-color has-background"><strong>Pro tips</strong><br>1. If you want to generate BACPAC file of an Azure SQL database, you can refer to this <a href="https://azureops.org/articles/bacpac-large-sql-server-database/" target="_blank" rel="noreferrer noopener">post</a></p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/8YVrxCgdiIg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p>The post <a href="https://azureops.org/articles/compare-azure-sql-database-schema-using-sqlpackage/">Compare Azure SQL Database Schema Using sqlpackage</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">9188</post-id>	</item>
		<item>
		<title>Cross Database Query in Azure SQL Database</title>
		<link>https://azureops.org/articles/cross-database-query-in-azure-sql/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Wed, 05 Nov 2025 16:25:27 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[SQL Database]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[cross database access in azure sql]]></category>
		<category><![CDATA[elastic query in azure sql]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=8505</guid>

					<description><![CDATA[<p>In modern cloud architectures, it&#8217;s common to distribute data across multiple Azure SQL Databases. While this promotes modularity and scalability, it can pose challenges when you need to access data across these databases. Fortunately, Azure SQL&#8217;s external tables feature allows for seamless cross-database querying without data duplication. This feature is also known as Elastic Query [&#8230;]</p>
<p>The post <a href="https://azureops.org/articles/cross-database-query-in-azure-sql/">Cross Database Query in Azure SQL Database</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In modern cloud architectures, it&#8217;s common to distribute data across multiple Azure SQL Databases. While this promotes modularity and scalability, it can pose challenges when you need to access data across these databases. Fortunately, Azure SQL&#8217;s external tables feature allows for seamless cross-database querying without data duplication. This feature is also known as <a href="https://learn.microsoft.com/en-us/azure/azure-sql/database/elastic-query-overview?view=azuresql" target="_blank" rel="noreferrer noopener">Elastic Query</a> in Azure SQL database.This guide walks you through setting up cross database query in Azure SQL to reference a table from another Azure SQL Database, ensuring secure and efficient data access.</p>



<h3 class="wp-block-heading">Use Case &#8211; Imagine this scenario:</h3>



<ul class="wp-block-list">
<li>You have a <strong>main transactional database</strong> named <code>app-db</code> hosted on Azure SQL Server <code>app-db.database.windows.net</code>.</li>



<li>You also have a <strong>reference or lookup database</strong> named <code>source-db</code>, hosted on a separate Azure SQL Server: <code>source-server.database.windows.net</code>.</li>
</ul>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Elastic-query-access-in-Azure-SQL-database-1.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1536" height="1024" data-attachment-id="8572" data-permalink="https://azureops.org/articles/cross-database-query-in-azure-sql/elastic-query-access-in-azure-sql-database-2/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Elastic-query-access-in-Azure-SQL-database-1.png?fit=1536%2C1024&amp;ssl=1" data-orig-size="1536,1024" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Elastic query access in Azure SQL database" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Elastic-query-access-in-Azure-SQL-database-1.png?fit=1200%2C800&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Elastic-query-access-in-Azure-SQL-database-1.png?resize=1536%2C1024&#038;ssl=1" alt="Cross database query in Azure SQL database" class="wp-image-8572" style="width:616px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Elastic-query-access-in-Azure-SQL-database-1.png?w=1536&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Elastic-query-access-in-Azure-SQL-database-1.png?resize=300%2C200&amp;ssl=1 300w" sizes="(max-width: 1536px) 100vw, 1536px" /></a></figure>



<p>You want your <code>app-db</code> to query the table <code>dbo.external_table</code> from the <code>source-db</code> — without importing or copying the data. The goal is to enable live, read-only access to shared reference data across databases in a secure and manageable way.</p>



<p class="has-pale-cyan-blue-background-color has-background"><strong>Prerequisites</strong><br>Before diving into the setup, ensure the following:<br><strong>1. Azure SQL Databases</strong>: Both the source and target databases should be Azure SQL Databases.<br><strong>2. Same Region</strong>: Ensure both databases are in the same Azure region to minimize latency.<br><strong>3. User Credentials</strong>: A SQL user say (<code>ext_table_user</code>) must exist in the source database with the necessary permissions to access the target table.</p>



<h3 class="wp-block-heading">Why Create Separate user in the Source Database?</h3>



<p>The <code>ext_table_user</code> is a SQL user in the source database that the target database uses to authenticate and access data. This user must have the necessary permissions (e.g., <code>SELECT</code>) on the target table.</p>



<p>Creating a dedicated user for external access enhances security by allowing you to:</p>



<ul class="wp-block-list">
<li><strong>Limit Permissions</strong>: Grant only the necessary permissions to this user.</li>



<li><strong>Monitor Access</strong>: Track and audit activities performed by this user.</li>



<li><strong>Revoke Access Easily</strong>: If needed, you can revoke this user&#8217;s access without affecting other users.</li>
</ul>



<p>Fow these <a href="https://azureops.org/articles/grant-access-to-azure-sql-database/" target="_blank" rel="noreferrer noopener">steps </a>to how to grant access to Azure SQL database. </p>



<h2 class="wp-block-heading">How to Setup Cross Database Access in Azure SQL</h2>



<p>Follow the below quick steps to setup cross database access in Azure SQL database.</p>



<h3 class="wp-block-heading">Step 1: Create a Master Key in the Target Database</h3>



<p>The master key is essential for encrypting credentials used in external data sources.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: sql; gutter: false; title: ; notranslate">
-- Execute in the target database

CREATE MASTER KEY ENCRYPTION BY PASSWORD = &#039;YourStrongPasswordHere&#039;;
</pre></div>


<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Skip this if <code>SELECT * FROM sys.symmetric_keys WHERE name = '##MS_DatabaseMasterKey##'</code> already returns a row.</p>
</blockquote>



<h3 class="wp-block-heading">Step 2: Create a Database Scoped Credential</h3>



<p>This credential will be used to authenticate against the source database.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: sql; gutter: false; title: ; notranslate">
-- Execute in the target database

CREATE DATABASE SCOPED CREDENTIAL ext_table_user
WITH IDENTITY = &#039;ext_table_user&#039;,
     SECRET = &#039;ActualPasswordOfExtTableUser&#039;;
</pre></div>


<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h3 class="wp-block-heading">Step 3: Define the External Data Source</h3>



<p>This step establishes a connection to the source database.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: sql; gutter: false; title: ; notranslate">
-- Execute in the target database

CREATE EXTERNAL DATA SOURCE LinkedAzureSQLDB
WITH (
    TYPE = RDBMS,
    LOCATION = &#039;source-server.database.windows.net&#039;,
    DATABASE_NAME = &#039;source-db&#039;,
    CREDENTIAL = ext_table_user
);
</pre></div>


<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>Ensure</em>: Replace <code>'source-server.database.windows.net'</code> and <code>'source-db'</code> with your actual server and database names.</p>
</blockquote>



<h3 class="wp-block-heading">Step 4: Create the External Table</h3>



<p>Now, define the external table in the target database to reference the table in the source database.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: sql; gutter: false; title: ; notranslate">
-- Execute in the target database

CREATE EXTERNAL TABLE dbo.external_table (
    &#x5B;ID] NUMERIC(18, 0) NOT NULL,
    &#x5B;list_id] INT NOT NULL,
    &#x5B;type_id] INT NOT NULL,
    &#x5B;description] VARCHAR(50) NULL
)
WITH (
    DATA_SOURCE = LinkedAzureSQLDB,
    SCHEMA_NAME = &#039;dbo&#039;,
    OBJECT_NAME = &#039;external_table&#039;
);
</pre></div>


<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>Note</em>: The schema and object names should match those in the source database.</p>
</blockquote>



<h3 class="wp-block-heading">Step 5: Query the External Table</h3>



<p>With the setup complete, you can now query the external table as if it were local:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: sql; gutter: false; title: ; notranslate">
-- Execute in the target database

SELECT TOP 10 * FROM dbo.external_table;
</pre></div>


<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>Performance Tip</em>: Monitor query performance, as cross-database queries may have higher latency.</p>
</blockquote>



<p class="has-background" style="background-color:#bcefca"><strong>Pro tips:</strong><br><strong>1. Use Managed Identities</strong>: For enhanced security, consider using Azure Managed Identities instead of SQL authentication.<br>2. <strong>Monitor Performance</strong>: Regularly monitor the performance of cross-database queries to ensure they meet your application&#8217;s requirements.<br>3. <strong>Secure Credentials</strong>: Store sensitive information, like passwords, securely using Azure Key Vault.<br>4. <strong>Elastic query</strong> feature in Azure SQL is still in preview.</p>



<p>By following this guide, you can efficiently set up cross databse query in Azure SQL, enabling seamless cross-database querying while maintaining security and performance.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/8YVrxCgdiIg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p>The post <a href="https://azureops.org/articles/cross-database-query-in-azure-sql/">Cross Database Query in Azure SQL Database</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8505</post-id>	</item>
		<item>
		<title>SSMS 21 Copilot: Here&#8217;s How It Works</title>
		<link>https://azureops.org/articles/ssms-21-copilot/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Sat, 11 Oct 2025 08:59:10 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Microsoft Copilot]]></category>
		<category><![CDATA[SQL Database]]></category>
		<category><![CDATA[SSMS]]></category>
		<category><![CDATA[SSMS with Copilot]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=8592</guid>

					<description><![CDATA[<p>SQL Server Management Studio (SSMS) version 21 introduces native Copilot integration, enhancing SQL development. Users can connect to Azure OpenAI for efficient query generation and debugging in read-only mode. Copilot aids in writing, fixing, and optimizing SQL queries without executing modifications, ensuring control and security over data.</p>
<p>The post <a href="https://azureops.org/articles/ssms-21-copilot/">SSMS 21 Copilot: Here&#8217;s How It Works</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="">SQL Server Management Studio (SSMS) has been a staple for database professionals for years. With version 21, Microsoft has added something many users have been waiting for: <strong>native Copilot integration</strong>. No extensions, no hacks—just open it up, connect to Azure, and start working smarter. Here’s a walkthrough of the most important features SSMS 21 Copilot offers and how they work in practice.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class=""><em>You write the query, run it, catch a missing condition, tweak the join, test again—repeat until it’s right. SSMS 21 brings Copilot into that loop. </em></p>
</blockquote>



<h2 class="wp-block-heading"><strong>TL;DR:</strong></h2>



<ul class="wp-block-list">
<li class="">SSMS 21 now includes <strong>built-in Copilot</strong>—no extensions. Just require connection to your <strong>Azure OpenAI deployment</strong> (like GPT-4o).</li>



<li class="">Works only with <strong>SQL Server connections</strong> (not SSIS, SSAS, or SSRS).</li>



<li class="">Runs in <strong>read-only mode</strong>—won’t execute any DML or modify data.</li>



<li class="">Can <strong>generate queries</strong>, fix broken SQL, and suggest optimizations.</li>



<li class="">Supports prompts like: “fix this query,” “optimize for performance,” or “generate insert script.”</li>



<li class="">Ideal for SQL developers who want help writing, debugging, or learning better query patterns—without giving up control.</li>
</ul>



<h2 class="wp-block-heading">Installation: Copilot Comes Built-in</h2>



<p class="">The installer for <a href="https://learn.microsoft.com/en-us/ssms/install/install" target="_blank" rel="noreferrer noopener">SSMS 21</a> clearly shows that Copilot is not an afterthought—it’s front and center. Once you launch the installer, you&#8217;ll notice the <strong>&#8220;Copilot Integration&#8221;</strong> checkbox enabled by default. This means no manual setup is required post-install. It&#8217;s part of the core experience now.</p>



<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/SSMS-21-installation-with-copilot.png?ssl=1"><img loading="lazy" decoding="async" width="1258" height="705" data-attachment-id="8595" data-permalink="https://azureops.org/articles/ssms-21-copilot/ssms-21-installation-with-copilot/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/SSMS-21-installation-with-copilot.png?fit=1258%2C705&amp;ssl=1" data-orig-size="1258,705" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SSMS 21 installation with copilot" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/SSMS-21-installation-with-copilot.png?fit=1200%2C672&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/SSMS-21-installation-with-copilot.png?fit=1200%2C672&amp;ssl=1" alt="ssms 21 copilot installation" class="wp-image-8595" style="width:793px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/SSMS-21-installation-with-copilot.png?w=1258&amp;ssl=1 1258w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/SSMS-21-installation-with-copilot.png?resize=300%2C168&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/SSMS-21-installation-with-copilot.png?resize=1200%2C672&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/SSMS-21-installation-with-copilot.png?resize=1106%2C620&amp;ssl=1 1106w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/SSMS-21-installation-with-copilot.png?resize=768%2C430&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/SSMS-21-installation-with-copilot.png?resize=450%2C252&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/SSMS-21-installation-with-copilot.png?resize=600%2C336&amp;ssl=1 600w" sizes="(max-width: 1258px) 100vw, 1258px" /></a></figure>



<h3 class="wp-block-heading">First Run: Setting Up Your Azure OpenAI Keys</h3>



<p class="">Once SSMS launches, you’ll be prompted to connect Copilot to your <strong>Azure OpenAI</strong> setup.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/enter-open-ai-service-key.png?ssl=1"><img loading="lazy" decoding="async" width="1086" height="778" data-attachment-id="8596" data-permalink="https://azureops.org/articles/ssms-21-copilot/enter-open-ai-service-key/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/enter-open-ai-service-key.png?fit=1086%2C778&amp;ssl=1" data-orig-size="1086,778" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="enter open ai service key" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/enter-open-ai-service-key.png?fit=1086%2C778&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/enter-open-ai-service-key.png?fit=1086%2C778&amp;ssl=1" alt="ssms 21 copilot installation - seeting up openai details" class="wp-image-8596" style="width:718px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/enter-open-ai-service-key.png?w=1086&amp;ssl=1 1086w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/enter-open-ai-service-key.png?resize=300%2C215&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/enter-open-ai-service-key.png?resize=865%2C620&amp;ssl=1 865w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/enter-open-ai-service-key.png?resize=768%2C550&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/enter-open-ai-service-key.png?resize=450%2C322&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/enter-open-ai-service-key.png?resize=600%2C430&amp;ssl=1 600w" sizes="(max-width: 1086px) 100vw, 1086px" /></a></figure>



<p class="">In the first prompt, you’ll be asked to provide:</p>



<ul class="wp-block-list">
<li class="">Azure OpenAI service endpoint</li>



<li class="">Azure OpenAI deployment</li>



<li class="">Azure OpenAI API key</li>
</ul>



<p class="">If you haven’t already created this in Azure, it’s a quick process: deploy a model, generate a key, and you’re good to go. we see how this information is pasted into SSMS.</p>



<p class="">It’s a one-time step, and once entered, Copilot starts responding instantly within SSMS.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/keys-and-endpoint-2.png?ssl=1"><img loading="lazy" decoding="async" width="996" height="523" data-attachment-id="8601" data-permalink="https://azureops.org/articles/ssms-21-copilot/keys-and-endpoint-3/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/keys-and-endpoint-2.png?fit=996%2C523&amp;ssl=1" data-orig-size="996,523" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="keys and endpoint" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/keys-and-endpoint-2.png?fit=996%2C523&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/keys-and-endpoint-2.png?fit=996%2C523&amp;ssl=1" alt="Create open ai service and get openai endpoint and key." class="wp-image-8601" style="width:802px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/keys-and-endpoint-2.png?w=996&amp;ssl=1 996w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/keys-and-endpoint-2.png?resize=300%2C158&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/keys-and-endpoint-2.png?resize=768%2C403&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/keys-and-endpoint-2.png?resize=450%2C236&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/keys-and-endpoint-2.png?resize=600%2C315&amp;ssl=1 600w" sizes="(max-width: 996px) 100vw, 996px" /></a></figure>



<p class="">To get an Azure <strong>OpenAI deployment </strong>name for SSMS Copilit, we need Gen AI model. That’s the engine powering your Copilot. GPT-4o is optimized for speed and real-time interaction, making it well-suited for something as dynamic as SQL writing and analysis.</p>



<p class="">If you already use GPT-based models in Azure, you can reuse the same deployment. If not, create a new one and pick GPT-4o or other depending on availability.</p>



<h2 class="wp-block-heading">Which Connections Are Supported?</h2>



<p class="">As of now, <strong>Copilot in SSMS works only with SQL Server connections</strong>—whether it&#8217;s a local database or Azure SQL.</p>



<p class="">It does <strong>not</strong> support:</p>



<ul class="wp-block-list">
<li class="">SQL Server Integration Services (SSIS)</li>



<li class="">SQL Server Analysis Services (SSAS)</li>



<li class="">SQL Server Reporting Services (SSRS)</li>
</ul>



<p class="">So if you’re connected to an SSIS or SSAS instance, you won’t see Copilot suggestions. It’s focused purely on <strong>Transact-SQL (T-SQL)</strong> scenarios for now.</p>



<h3 class="wp-block-heading">Read-Only Mode – No Live Data Changes</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class=""><em>Copilot works in a read-only mode inside SSMS</em> for GOOD.</p>
</blockquote>



<p class="">It will <strong>not execute updates, deletes, or any data-modifying queries</strong> on its own. It doesn’t have permissions to alter databases or run DML commands. You remain in full control.</p>



<p class="">That said, it <strong>can generate</strong> update, insert, and delete queries for you, which you can review, tweak, and run manually. This helps reduce the risk of accidental changes while still speeding up development.</p>



<h2 class="wp-block-heading">Quick Demo: Fixing a Broken Query</h2>



<p class="">I pasted a malformed SELECT query into SSMS. Copilot immediately offered a fix and even explained what was wrong.</p>



<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Fix-SQL-Query-in-SSMS-using-copilot.png?ssl=1"><img loading="lazy" decoding="async" width="1332" height="277" data-attachment-id="8604" data-permalink="https://azureops.org/articles/ssms-21-copilot/fix-sql-query-in-ssms-using-copilot/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Fix-SQL-Query-in-SSMS-using-copilot.png?fit=1332%2C277&amp;ssl=1" data-orig-size="1332,277" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Fix SQL Query in SSMS using copilot" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Fix-SQL-Query-in-SSMS-using-copilot.png?fit=1200%2C250&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Fix-SQL-Query-in-SSMS-using-copilot.png?fit=1200%2C250&amp;ssl=1" alt="SSMS 21 Copilot" class="wp-image-8604" style="width:1023px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Fix-SQL-Query-in-SSMS-using-copilot.png?w=1332&amp;ssl=1 1332w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Fix-SQL-Query-in-SSMS-using-copilot.png?resize=300%2C62&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Fix-SQL-Query-in-SSMS-using-copilot.png?resize=1200%2C250&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Fix-SQL-Query-in-SSMS-using-copilot.png?resize=768%2C160&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Fix-SQL-Query-in-SSMS-using-copilot.png?resize=450%2C94&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/Fix-SQL-Query-in-SSMS-using-copilot.png?resize=600%2C125&amp;ssl=1 600w" sizes="(max-width: 1332px) 100vw, 1332px" /></a></figure>



<h3 class="wp-block-heading">Few Prompt Examples: Result Accuracy</h3>



<p class="">In below example, we asked Copilot to generate a complex query involving filters, aggregates, and joins. The result was accurate and ready to run with minimal edits.</p>



<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-1.png?ssl=1"><img loading="lazy" decoding="async" width="1591" height="968" data-attachment-id="8607" data-permalink="https://azureops.org/articles/ssms-21-copilot/result-1/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-1.png?fit=1591%2C968&amp;ssl=1" data-orig-size="1591,968" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="result 1" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-1.png?fit=1200%2C730&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-1.png?fit=1200%2C730&amp;ssl=1" alt="SSMS 21 Copilot" class="wp-image-8607" style="width:890px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-1.png?w=1591&amp;ssl=1 1591w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-1.png?resize=300%2C183&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-1.png?resize=1200%2C730&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-1.png?resize=1019%2C620&amp;ssl=1 1019w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-1.png?resize=768%2C467&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-1.png?resize=1536%2C935&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-1.png?resize=450%2C274&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-1.png?resize=600%2C365&amp;ssl=1 600w" sizes="(max-width: 1591px) 100vw, 1591px" /></a></figure>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<p class=""> the same query was further optimized by Copilot after being prompted with: <em>&#8220;Make it efficient.&#8221;</em> It introduced indexing suggestions and added a <code>WITH (NOLOCK)</code> hint—something even experienced developers can forget.</p>



<p class="">In another example, we asked Copilot another question on a different query context (another database connection), and it just worked fine.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-2.png?ssl=1"><img loading="lazy" decoding="async" width="674" height="275" data-attachment-id="8608" data-permalink="https://azureops.org/articles/ssms-21-copilot/result-2/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-2.png?fit=674%2C275&amp;ssl=1" data-orig-size="674,275" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="result 2" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-2.png?fit=674%2C275&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-2.png?fit=674%2C275&amp;ssl=1" alt="SSMS 21 Copilot" class="wp-image-8608" style="width:575px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-2.png?w=674&amp;ssl=1 674w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-2.png?resize=300%2C122&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-2.png?resize=450%2C184&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/06/result-2.png?resize=600%2C245&amp;ssl=1 600w" sizes="(max-width: 674px) 100vw, 674px" /></a></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class=""><em>These examples show that Copilot isn’t just copying boilerplate SQL—it understands context and best practices.</em></p>
</blockquote>



<h2 class="wp-block-heading">Should You Use This?</h2>



<p class="">If your daily work involves writing or reading SQL, then yes—this is probably the most useful update to SSMS in years.</p>



<p class="">Here’s what it helps with:</p>



<ul class="wp-block-list">
<li class="">Writing long queries faster</li>



<li class="">Understanding joins and filters</li>



<li class="">Fixing syntax issues</li>



<li class="">Learning better SQL patterns</li>



<li class="">Generating stored procedure templates</li>



<li class="">Drafting DML scripts (but not running them automatically)</li>
</ul>



<h2 class="wp-block-heading">What It Won’t Do (Yet)</h2>



<p class="">Let’s be clear:</p>



<ul class="wp-block-list">
<li class="">It won’t <strong>connect to SSIS/SSAS/SSRS</strong></li>



<li class="">It won’t <strong>execute anything that modifies data</strong></li>



<li class="">It won’t <strong>automatically run</strong> DDL/ DML code it suggests</li>
</ul>



<p class="">This is intentional, for safety and audit reasons. Think of it as a smart assistant—not a trigger-happy automation engine.</p>



<h2 class="wp-block-heading">A Note on Privacy and Control</h2>



<p class="">Copilot integrates directly with your Azure environment, so you control what it accesses and shares. It processes your prompts and data securely within your subscription. According to Microsoft, it doesn&#8217;t store any query logs outside your environment, which helps meet compliance requirements for enterprise users.</p>



<p class="">SSMS 21 doesn’t just add Copilot—it integrates it naturally into the flow of writing, editing, and reviewing SQL. It’s fast, context-aware, and doesn’t get in the way.</p>



<p class="has-background" style="background-color:#beefca"><strong>Pro tips:</strong><br>1. While it&#8217;s good to have Copilot like features in SSMS 21, it seems to have lost some very important features like Import Export Wizard for databases like Azure SQL.<br>2. <a href="https://azureops.org/articles/data-agent-in-microsoft-fabric-heres-how-it-works/" target="_blank" rel="noreferrer noopener">Learn</a> how to build data agent in Microsoft Fabric.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>
<p>The post <a href="https://azureops.org/articles/ssms-21-copilot/">SSMS 21 Copilot: Here&#8217;s How It Works</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8592</post-id>	</item>
		<item>
		<title>Connect Python Azure Function to Azure SQL Using Managed Identity</title>
		<link>https://azureops.org/articles/connect-python-azure-function-to-azure-sql-using-managed-identity/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Thu, 18 Sep 2025 18:21:20 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[Managed Identity]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=8874</guid>

					<description><![CDATA[<p>An Azure Function is a lightweight, serverless compute option in Azure that lets you execute small chunks of code in response to events or schedules without managing servers. When connecting Azure Functions to Azure SQL Database, you need a secure way to authenticate without storing credentials. That’s where Managed Identity steps in. Managed Identity allows [&#8230;]</p>
<p>The post <a href="https://azureops.org/articles/connect-python-azure-function-to-azure-sql-using-managed-identity/">Connect Python Azure Function to Azure SQL Using Managed Identity</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="">An <strong>Azure Function</strong> is a lightweight, serverless compute option in Azure that lets you execute small chunks of code in response to events or schedules without managing servers. When connecting Azure Functions to <strong>Azure SQL Database</strong>, you need a secure way to authenticate without storing credentials. That’s where <strong>Managed Identity</strong> steps in. Managed Identity allows Azure resources (like Functions, VMs, Logic Apps) to access other Azure services securely by leveraging <strong>Azure Active Directory (AAD)</strong>.In this article, we’ll explore how to connect <a href="https://learn.microsoft.com/en-us/azure/azure-functions/functions-reference-python?tabs=get-started%2Casgi%2Capplication-level&amp;pivots=python-mode-decorators" target="_blank" rel="noreferrer noopener">Python Azure Function</a><strong> to Azure SQL</strong> using <strong>Managed Identity</strong>. You’ll learn step-by-step setup, Python code implementation, troubleshooting, and best practices to ensure your solution is secure and scalable.</p>



<h2 class="wp-block-heading">Why Use Managed Identity with Azure SQL?</h2>



<p class="">Storing passwords in configuration files is risky. Managed Identity solves this problem by:</p>



<ul class="wp-block-list">
<li class=""><strong>Eliminating Secrets</strong> → No passwords, no connection strings with credentials.</li>



<li class=""><strong>Centralized Identity Management</strong> → Uses <strong>Azure AD authentication</strong> for consistency.</li>



<li class=""><strong>Least Privilege Principle</strong> → Assigns only the required SQL permissions.</li>



<li class=""><strong>Automatic Rotation</strong> → No need to update or rotate credentials manually.</li>
</ul>



<p class="">This makes it the <strong>recommended authentication method</strong> when connecting Azure Functions to SQL Database.</p>



<p class="has-pale-cyan-blue-background-color has-background"><strong>Prerequisites:</strong><br>Before implementing, ensure you have:<br>1. An Azure subscription.<br>2. An Azure SQL Database already created.<br>3. An Azure Function App (Python runtime).<br>4. Azure CLI or Portal access.</p>



<p class="">This guide assumes you already have a basic understanding of creating an Azure Function. If you need a refresher, please refer to our previous article on <a href="https://azureops.org/articles/create-python-azure-function/" target="_blank" rel="noreferrer noopener">How to Create a Python Azure Function</a>.</p>



<p class="">Let&#8217;s now see how to connect Python Azure Function to Azure SQL database using managed identity authentication. In this example we will fetch data from a public API and securely write it to an <strong>Azure SQL Database</strong> table..</p>



<h3 class="wp-block-heading">Step 1: Set Up Your Azure SQL Database</h3>



<h4 class="wp-block-heading">Creating WeatherData Table</h4>



<p class="">In this guide, we’ll simulate fetching weather data from an API and storing it in Azure SQL.</p>



<p class="">Run the following SQL script inside your Azure SQL database:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: sql; gutter: false; title: ; notranslate">
CREATE TABLE WeatherData (
    Id INT PRIMARY KEY IDENTITY(1,1),
    City VARCHAR(100),
    Temperature DECIMAL(5,2),
    Humidity INT,
    ForecastDate DATETIME
);

</pre></div>


<h3 class="wp-block-heading">Step 2: Enabling Managed Identity for Azure Function</h3>



<p class="">INavigate to your <strong>Function App</strong> in Azure Portal.</p>



<p class="">Under <strong>Settings → Identity</strong>, enable <strong>System Assigned Managed Identity</strong>.</p>



<p class="">Azure will create an identity in Microsoft Entra representing your Function.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Enable-Azure-function-managed-identity.png?ssl=1"><img loading="lazy" decoding="async" width="1072" height="715" data-attachment-id="8884" data-permalink="https://azureops.org/articles/connect-python-azure-function-to-azure-sql-using-managed-identity/enable-azure-function-managed-identity/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Enable-Azure-function-managed-identity.png?fit=1072%2C715&amp;ssl=1" data-orig-size="1072,715" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Enable Azure function managed identity" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Enable-Azure-function-managed-identity.png?fit=1072%2C715&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Enable-Azure-function-managed-identity.png?fit=1072%2C715&amp;ssl=1" alt="Connect Python Azure Function to Azure SQL" class="wp-image-8884" style="width:821px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Enable-Azure-function-managed-identity.png?w=1072&amp;ssl=1 1072w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Enable-Azure-function-managed-identity.png?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Enable-Azure-function-managed-identity.png?resize=930%2C620&amp;ssl=1 930w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Enable-Azure-function-managed-identity.png?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Enable-Azure-function-managed-identity.png?resize=450%2C300&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Enable-Azure-function-managed-identity.png?resize=600%2C400&amp;ssl=1 600w" sizes="(max-width: 1072px) 100vw, 1072px" /></a></figure>



<h3 class="wp-block-heading">Step 3: Grant the Managed Identity Access to Azure SQL</h3>



<h4 class="wp-block-heading">Configuring Azure Entra Admin</h4>



<p class="">To allow <strong>Managed Identity</strong> to authenticate, assign an <strong>Azure Entra admin</strong> for your SQL server.</p>



<ol class="wp-block-list">
<li class="">Go to Azure Portal → SQL Server → <strong>Active Entra Admin</strong>.</li>



<li class="">Assign an Azure Entra user/group as the admin.</li>



<li class="">Save changes.</li>
</ol>



<h3 class="wp-block-heading">Grant the permissions</h3>



<p class="">Now, connect to to your Azure SQL Database using the Entra ID authentication. You need to grant the Managed Identity permission to write to the database. Use the following T-SQL commands, replacing <code>&lt;your-azure-function-name&gt;</code> with the name of your function:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: sql; gutter: false; title: ; notranslate">
CREATE USER &#x5B;your-azure-function-name] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datawriter ADD MEMBER &#x5B;your-azure-function-name];
</pre></div>


<ul class="wp-block-list">
<li class=""><code>CREATE USER</code> creates the identity inside SQL.</li>



<li class=""><code>ALTER ROLE</code> gives write permissions to insert/update/delete.</li>
</ul>



<p class="">Learn how to grant access to Azure SQL databases in this <a href="https://azureops.org/articles/grant-access-to-azure-sql-database/" target="_blank" rel="noreferrer noopener">post</a>.</p>



<h3 class="wp-block-heading">Step 4: Configure Application Settings</h3>



<p class="">In the Function App Environment variables, define following variables.</p>



<ul class="wp-block-list">
<li class=""><strong>SqlConnectionInfo</strong> → <code>Server=&lt;your-sql-server&gt;.database.windows.net;Database=&lt;your-db&gt;;</code></li>



<li class=""><strong>WEATHER_API_URL</strong> → https://api.open-meteo.com/v1/forecast?latitude=60.17&amp;longitude=24.94&amp;hourly=temperature_2m,relative_humidity_2m</li>



<li class=""><strong>TIMER_SCHEDULE</strong> → <code>0 * * * * *</code> (Runs every hour).</li>
</ul>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Add-environment-variables-to-Azure-function.png?ssl=1"><img loading="lazy" decoding="async" width="975" height="677" data-attachment-id="8886" data-permalink="https://azureops.org/articles/connect-python-azure-function-to-azure-sql-using-managed-identity/add-environment-variables-to-azure-function/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Add-environment-variables-to-Azure-function.png?fit=975%2C677&amp;ssl=1" data-orig-size="975,677" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Add environment variables to Azure function" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Add-environment-variables-to-Azure-function.png?fit=975%2C677&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Add-environment-variables-to-Azure-function.png?fit=975%2C677&amp;ssl=1" alt="Azure Function configuration settings
" class="wp-image-8886" style="width:850px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Add-environment-variables-to-Azure-function.png?w=975&amp;ssl=1 975w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Add-environment-variables-to-Azure-function.png?resize=300%2C208&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Add-environment-variables-to-Azure-function.png?resize=893%2C620&amp;ssl=1 893w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Add-environment-variables-to-Azure-function.png?resize=768%2C533&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Add-environment-variables-to-Azure-function.png?resize=450%2C312&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/09/Add-environment-variables-to-Azure-function.png?resize=600%2C417&amp;ssl=1 600w" sizes="(max-width: 975px) 100vw, 975px" /></a></figure>



<h3 class="wp-block-heading">Step 5: Writing Python Azure Function Code</h3>



<p class="">Now, it&#8217;s time to write the code that will perform the data fetching and insertion. For this example, we&#8217;ll use a Python HTTP-triggered function and the <code>requests</code> and <code>pyodbc</code> libraries. You will also need the <code>azure-identity</code> package to handle the Managed Identity authentication.</p>



<h4 class="wp-block-heading">1. Installing Required Packages</h4>



<p class="">Add to <code>requirements.txt</code>:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; gutter: false; title: ; notranslate">
azure-functions
requests
pypyodbc
</pre></div>


<h4 class="wp-block-heading">2. Write the function code (<code>__init__.py</code>):</h4>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: python; title: ; notranslate">
import azure.functions as func
import logging, os, requests, pypyodbc

app = func.FunctionApp()

@app.timer_trigger(schedule=&quot;%TIMER_SCHEDULE%&quot;, arg_name=&quot;myTimer&quot;)
def load_weather_data_to_sql(myTimer: func.TimerRequest):
    if myTimer.past_due:
        logging.info(&quot;The timer is past due!&quot;)

    try:
        url = os.getenv(&quot;WEATHER_API_URL&quot;)
        response = requests.get(url)
        data = response.json().get(&quot;current&quot;, {})
        
        temperature = data.get(&quot;temperature_2m&quot;)
        humidity = data.get(&quot;relative_humidity_2m&quot;)
        city = &quot;Berlin&quot;

        conn = get_sql_connection()
        cursor = conn.cursor()
        cursor.execute(
            &quot;INSERT INTO WeatherData (City, Temperature, Humidity, ForecastDate) VALUES (?, ?, ?, GETDATE())&quot;,
            (city, temperature, humidity)
        )
        conn.commit()
        cursor.close()
        conn.close()
        logging.info(&quot;Weather data inserted successfully&quot;)

    except Exception as e:
        logging.error(f&quot;Error: {e}&quot;)

def get_sql_connection():
    conn_info = os.getenv(&quot;SqlConnectionInfo&quot;)
    parts = dict(item.split(&quot;=&quot;,1) for item in conn_info.split(&quot;;&quot;) if &quot;=&quot; in item)
    server, db = parts.get(&quot;Server&quot;), parts.get(&quot;Database&quot;)
# Depending on the python version, select appropriate ODBC Driver. For latest version 3.12, use ODBC Driver 18. For previous versions, try ODBC Driver 17.
    conn_str = f&quot;DRIVER={{ODBC Driver 18 for SQL Server}};Server={server};Database={db};Authentication=ActiveDirectoryMsi;&quot;
    return pypyodbc.connect(conn_str)

</pre></div>


<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h3 class="wp-block-heading">Step 6: Testing the Integration</h3>



<h4 class="wp-block-heading">Running Function Locally</h4>



<ul class="wp-block-list">
<li class="">Use <strong>Azure Functions Core Tools</strong>.</li>



<li class="">Set local.settings.json with required env variables.</li>



<li class="">Test the API call and SQL insertion.</li>
</ul>



<h4 class="wp-block-heading">Deploying to Azure</h4>



<ul class="wp-block-list">
<li class="">Push code to Azure Function App.</li>



<li class="">Check logs in <strong>Application Insights</strong> or <code>Log Stream</code>.</li>



<li class="">Common Issues and Troubleshooting.</li>
</ul>



<h2 class="wp-block-heading">Best Practices for Secure and Scalable Integration</h2>



<ul class="wp-block-list">
<li class="">Use <strong>least privilege</strong> for SQL roles.</li>



<li class="">Store configs in <strong>Azure Key Vault</strong>.</li>



<li class="">Monitor using <strong>Azure Monitor + Application Insights</strong>.</li>



<li class="">Implement retry logic for transient failures.</li>
</ul>



<h2 class="wp-block-heading">FAQs</h2>


<div class="wp-block-uagb-faq uagb-faq__outer-wrap uagb-block-1f3f6ec0 uagb-faq-icon-row uagb-faq-layout-accordion uagb-faq-expand-first-true uagb-faq-inactive-other-true uagb-faq__wrap uagb-buttons-layout-wrap uagb-faq-equal-height     " data-faqtoggle="true" role="tablist"><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-152cbd76 " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">Can I use User-Assigned Managed Identity instead of System-Assigned?</span></div><div class="uagb-faq-content"><p>Yes, both are supported. User-assigned is better for multiple Functions sharing one identity.</p></div></div><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-588ab62f " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">What if I want read-only access to SQL?</span></div><div class="uagb-faq-content"><p>Assign the <code>db_datareader</code> role instead of <code>db_datawriter</code>.</p></div></div><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-81419b26 " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">Does Managed Identity work with Elastic Pools?</span></div><div class="uagb-faq-content"><p>Yes, it works across all Azure SQL deployment models.</p></div></div><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-9bb291eb " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">Is pypyodbc required or can I use pyodbc?</span></div><div class="uagb-faq-content"><p>In Azure Functions Linux consumption plan, <code>pypyodbc</code> works more reliably.</p></div></div><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-e8d40354 " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">Can I connect to SQL Server on-prem using Managed Identity?</span></div><div class="uagb-faq-content"><p>Not directly. You’d need a Hybrid Connection or VPN.</p></div></div><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-8a7feb69 " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">Azure function execution giving Error: Error during function execution: (&#8216;01000&#8217;, &#8220;[01000] [unixODBC][Driver Manager]Can&#8217;t open lib &#8216;ODBC Driver 17 for SQL Server&#8217; : file not found&#8221;)</span></div><div class="uagb-faq-content"><p>This error usually occurs due to mismatch of ODBC Driver version. Depending on the python version, select appropriate ODBC Driver. For latest version 3.12, use ODBC Driver 18. For previous versions, try ODBC Driver 17.</p></div></div></div>


<h2 class="wp-block-heading">Conclusion</h2>



<p class="">By following these steps, you’ve securely connected a <strong>Python Azure Function</strong> to an <strong>Azure SQL Database</strong> using <strong>Managed Identity</strong>. This approach avoids hardcoding credentials, ensures automatic rotation, and aligns with cloud security best practices.</p>



<p class="">With this foundation, you can extend the Function to handle more APIs, perform ETL pipelines, or automate reporting tasks, all while staying secure and compliant.</p>



<p class="has-background" style="background-color:#beefca"><strong>Pro tips:</strong><br>1. Always prefer pypyodbc in Functions to avoid dependency issues.<br>2. Use retry policies when inserting data into SQL.<br>3. Keep Functions lightweight, offload heavy processing to Azure Data Factory or Microsoft Fabric.<br>4. If scaling out, validate SQL performance with connection pooling.<br>5. Learn how to <a href="https://azureops.org/articles/connect-azure-sql-from-data-factory-using-managed-identity/" target="_blank" rel="noreferrer noopener">connect to Azure SQL from Azure Data Factory</a> using managed identity.<br></p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>
<p>The post <a href="https://azureops.org/articles/connect-python-azure-function-to-azure-sql-using-managed-identity/">Connect Python Azure Function to Azure SQL Using Managed Identity</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8874</post-id>	</item>
		<item>
		<title>Data Agent in Microsoft Fabric &#8211; Here&#8217;s How it Works</title>
		<link>https://azureops.org/articles/data-agent-in-microsoft-fabric-heres-how-it-works/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Thu, 07 Aug 2025 16:15:51 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Microsoft Fabric]]></category>
		<category><![CDATA[data agent]]></category>
		<category><![CDATA[data agent in ai foundry]]></category>
		<category><![CDATA[data agent in copilot]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=8717</guid>

					<description><![CDATA[<p>In this post, I’ll walk you through how I built a Fabric Data Agent on top of the standard AdventureWorksDW dataset (via shortcuts), and how you can too — even if you’re a complete beginner.</p>
<p>The post <a href="https://azureops.org/articles/data-agent-in-microsoft-fabric-heres-how-it-works/">Data Agent in Microsoft Fabric &#8211; Here&#8217;s How it Works</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="">Ever wished you could just ask your data questions in plain English and get instant, intelligent answers?<br>With Microsoft Fabric’s new <strong>Data Agent</strong>, that’s not just possible, it’s powerful.</p>



<p class="">In this post, I’ll walk you through how I built a Fabric Data Agent on top of the standard AdventureWorksDW dataset, and how you can too, even if you’re a complete beginner.</p>



<h2 class="wp-block-heading">TL;DR</h2>



<p class="">Microsoft Fabric’s <strong>Data Agent</strong> lets you ask questions about your data in natural language; no SQL, DAX, or visuals required. Think of it like a chat-based analyst that already knows your data model and never sleeps. This article walks you through building a Data Agent on top of AdventureWorksDW, writing agent instructions, adding data sources, and exploring advanced use cases like AI Foundry and multi-agent systems. By the end, you&#8217;ll be able to create your own interactive AI analyst in under 30 minutes.</p>



<p class="has-pale-cyan-blue-background-color has-background"><strong>Prerequisites:</strong><br>1. You must have access to Microsoft Fabric Capacity specifically F2 or higher.<br>2. Only workspaces with Fabric-enabled capacity will show the &#8220;AI Agent&#8221; option in the &#8220;+ New&#8221; menu.<br>3.Your <strong>Fabric admin</strong> must enable the <strong>Data Agent preview</strong> in the <a href="https://learn.microsoft.com/en-us/fabric/data-science/data-agent-tenant-settings?utm_source=chatgpt.com">Tenant Settings</a> within the Microsoft Fabric Admin Portal. if you don&#8217;t have admin rights, contact your admin.</p>



<h2 class="wp-block-heading">How to Create a Data Agent in Microsoft Fabric</h2>



<p class="">If you’ve never done this before, don’t worry. Here’s a simple step-by-step guide.</p>



<h3 class="wp-block-heading">Step 1: Open the Microsoft Fabric Workspace</h3>



<ol class="wp-block-list">
<li class="">Go to <a class="" href="https://app.fabric.microsoft.com">https://app.fabric.microsoft.com</a>.</li>



<li class="">Select or create a new <strong>Workspace</strong> where your Lakehouse is located.</li>
</ol>



<h3 class="wp-block-heading">Step 2: Create a Lakehouse (if not already done)</h3>



<ol class="wp-block-list">
<li class="">Click <strong>New &gt; Lakehouse</strong> and give it a name (e.g., <code>demolakehouse</code>).</li>



<li class="">Add your data using <strong>Shortcuts</strong>:
<ul class="wp-block-list">
<li class="">Go to the <strong>Tables</strong> pane inside the Lakehouse.</li>



<li class="">Click <strong>Add Shortcut &gt; OneLake data</strong>.</li>



<li class="">Browse and select the relevant tables (e.g., from AdventureWorksDW).</li>
</ul>
</li>
</ol>



<p class="">I used the classic <strong>AdventureWorksDW</strong> dataset, the same one you’ve probably seen in BI demos. Instead of importing tables manually, I used <strong>OneLake Shortcuts</strong>, which connect existing data without duplicating it.</p>



<h3 class="wp-block-heading">Step 3: Create the Data Agent</h3>



<ol class="wp-block-list">
<li class="">In your workspace, click <strong>New &gt; Data agent</strong> <strong>(preview)</strong>.</li>



<li class="">Choose the <strong>Lakehouse</strong> where your data is stored. You can also choose semantic model in case you have created semantic model on top of your lakehouse.</li>



<li class="">Give your agent a name (e.g., <code>Sales Insights Agent</code>).</li>



<li class="">Click <strong>Create</strong> — this opens the agent configuration screen.</li>
</ol>



<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Create-data-agent.png?ssl=1"><img loading="lazy" decoding="async" width="1736" height="396" data-attachment-id="8742" data-permalink="https://azureops.org/articles/data-agent-in-microsoft-fabric-heres-how-it-works/create-data-agent/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Create-data-agent.png?fit=1736%2C396&amp;ssl=1" data-orig-size="1736,396" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Create data agent" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Create-data-agent.png?fit=1200%2C274&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Create-data-agent.png?fit=1200%2C274&amp;ssl=1" alt="fabric data agent" class="wp-image-8742" style="width:1179px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Create-data-agent.png?w=1736&amp;ssl=1 1736w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Create-data-agent.png?resize=300%2C68&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Create-data-agent.png?resize=1200%2C274&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Create-data-agent.png?resize=768%2C175&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Create-data-agent.png?resize=1536%2C350&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Create-data-agent.png?resize=450%2C103&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Create-data-agent.png?resize=600%2C137&amp;ssl=1 600w" sizes="(max-width: 1709px) 100vw, 1709px" /></a></figure>



<h3 class="wp-block-heading">Step 4: Add a Data Source to the Data Agent</h3>



<p class="">Once the agent is created, you’ll need to give it instructions and connect it to your data.</p>



<ol class="wp-block-list">
<li class="">Inside the agent editor, go to the <strong>Data Sources</strong> tab.</li>



<li class="">Click <strong>+ Add data source</strong> and choose the <code>Lakehouse</code> as shown in the image below.</li>
</ol>



<h3 class="wp-block-heading">Step 5: Add the Agent Instructions</h3>



<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/data-agent-instructions-1.png?ssl=1"><img loading="lazy" decoding="async" width="1615" height="876" data-attachment-id="8752" data-permalink="https://azureops.org/articles/data-agent-in-microsoft-fabric-heres-how-it-works/data-agent-instructions-2/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/data-agent-instructions-1.png?fit=1615%2C876&amp;ssl=1" data-orig-size="1615,876" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="data agent instructions" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/data-agent-instructions-1.png?fit=1200%2C651&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/data-agent-instructions-1.png?fit=1200%2C651&amp;ssl=1" alt="Data Agent in Microsoft Fabric - AI instructions" class="wp-image-8752" style="width:1525px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/data-agent-instructions-1.png?w=1615&amp;ssl=1 1615w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/data-agent-instructions-1.png?resize=300%2C163&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/data-agent-instructions-1.png?resize=1200%2C651&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/data-agent-instructions-1.png?resize=1143%2C620&amp;ssl=1 1143w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/data-agent-instructions-1.png?resize=768%2C417&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/data-agent-instructions-1.png?resize=1536%2C833&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/data-agent-instructions-1.png?resize=450%2C244&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/data-agent-instructions-1.png?resize=600%2C325&amp;ssl=1 600w" sizes="(max-width: 1615px) 100vw, 1615px" /></a></figure>



<ol class="wp-block-list">
<li class="">Go to the <strong>Agent Instructions</strong> tab.</li>



<li class="">Provide instuctions for the data agent about it&#8217;s goal and responsibilities. </li>
</ol>



<pre class="wp-block-preformatted"><code>Goal:<br>Assist users in analyzing sales, customers, geography, and product performance.<br><br>Key Relationships:<br>- FactInternetSales ➡ ProductKey ➡ DimProduct ➡ Subcategory ➡ Category<br>- FactInternetSales ➡ CustomerKey ➡ DimCustomer ➡ Geography<br>- FactInternetSales ➡ OrderDateKey ➡ DimDate<br><br>Ask me things like:<br>- Top-selling categories last year?<br>- Sales trend in Q1 2024?<br>- Which cities had highest average order size?<br><br>Answer in charts, tables, or summaries where helpful.<br></code></pre>



<h3 class="wp-block-heading">Step 6: Add the Data Source Instructions</h3>



<ol class="wp-block-list">
<li class="">Add the data source instruction to let data agent understand your data model.</li>
</ol>



<pre class="wp-block-preformatted">yamlCopyEdit<code>name: AdventureWorksDW_Shortcut
type: Lakehouse
tables:
  - name: DimCustomer_shortcut
    description: Customer demographics and keys
  - name: DimDate_shortcut
    description: Calendar date dimension
  - name: DimProduct_shortcut
    description: Product attributes
  - name: DimProductCategory_shortcut
    description: Categories of products
  - name: DimProductSubcategory_shortcut
    description: Subcategories of products
  - name: DimGeography_shortcut
    description: Country, state, and city details
  - name: FactInternetSales_shortcut
    description: Sales facts including sales amount, quantity, and dates
</code></pre>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h3 class="wp-block-heading">Step 7: Test the Agent and fine tunning</h3>



<p class="">Start asking questions to the agent like;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="">1. List top 10 cities by internet sales in last available 12 months.</p>
</blockquote>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-question-to-data-agent-1.png?ssl=1"><img loading="lazy" decoding="async" width="1594" height="792" data-attachment-id="8745" data-permalink="https://azureops.org/articles/data-agent-in-microsoft-fabric-heres-how-it-works/sample-question-to-data-agent-2/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-question-to-data-agent-1.png?fit=1594%2C792&amp;ssl=1" data-orig-size="1594,792" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Sample question to data agent" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-question-to-data-agent-1.png?fit=1200%2C596&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-question-to-data-agent-1.png?fit=1200%2C596&amp;ssl=1" alt="fabric data agent demo" class="wp-image-8745" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-question-to-data-agent-1.png?w=1594&amp;ssl=1 1594w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-question-to-data-agent-1.png?resize=300%2C149&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-question-to-data-agent-1.png?resize=1200%2C596&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-question-to-data-agent-1.png?resize=768%2C382&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-question-to-data-agent-1.png?resize=1536%2C763&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-question-to-data-agent-1.png?resize=450%2C224&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-question-to-data-agent-1.png?resize=600%2C298&amp;ssl=1 600w" sizes="(max-width: 1594px) 100vw, 1594px" /></a></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="">2. List top 5 customers who made the highest purchases in the latest available year:</p>
</blockquote>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-query-2-data-agent.png?ssl=1"><img loading="lazy" decoding="async" width="989" height="714" data-attachment-id="8746" data-permalink="https://azureops.org/articles/data-agent-in-microsoft-fabric-heres-how-it-works/sample-query-2-data-agent/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-query-2-data-agent.png?fit=989%2C714&amp;ssl=1" data-orig-size="989,714" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Sample query 2 data agent" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-query-2-data-agent.png?fit=989%2C714&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-query-2-data-agent.png?fit=989%2C714&amp;ssl=1" alt="fabric data agent demo" class="wp-image-8746" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-query-2-data-agent.png?w=989&amp;ssl=1 989w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-query-2-data-agent.png?resize=300%2C217&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-query-2-data-agent.png?resize=859%2C620&amp;ssl=1 859w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-query-2-data-agent.png?resize=768%2C554&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-query-2-data-agent.png?resize=450%2C325&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/07/Sample-query-2-data-agent.png?resize=600%2C433&amp;ssl=1 600w" sizes="(max-width: 989px) 100vw, 989px" /></a></figure>



<p class="">Notice that it also provides the SQL query it has executed on the lakehouse to get the required output.</p>



<p class="">If the data source and instructions are set correctly, the agent should respond with meaningful tables or summaries. In case you observe issues in the responses, you may need to fine tune the AI instructions and test again.</p>



<h2 class="wp-block-heading">When Should You Use Data Agents?</h2>



<p class="">If you&#8217;re already using:</p>



<ul class="wp-block-list">
<li class="">A well-modeled star schema</li>



<li class="">Lakehouse tables or Delta format</li>



<li class="">Power BI reports or semantic models</li>



<li class="">Microsoft Fabric workspaces with clean relationships</li>
</ul>



<p class="">Then a Data Agent will act like a bridge between your data and your business users. No technical barrier — just questions and answers.</p>



<h2 class="wp-block-heading">Integrations and Advanced Use Cases</h2>



<p class="">What makes Fabric Data Agents truly powerful is not just that they can answer questions — but that they can <strong>plug into larger AI and data ecosystems</strong>. Here are a few ways to take your agent to the next level.</p>



<h3 class="wp-block-heading">1. Integration with Azure AI Foundry</h3>



<p class="">Microsoft Azure&#8217;s <a href="https://ai.azure.com/" target="_blank" rel="noreferrer noopener">AI Foundry</a> allows you to orchestrate LLM-driven pipelines, combine ML models with data operations, and deploy custom copilots. Your Data Agent can be used here in multiple ways:</p>



<ul class="wp-block-list">
<li class="">As a <strong>ready knowledge base</strong> within Foundry apps</li>



<li class="">To <strong>summarize and explain insights</strong> from streaming or batch pipelines</li>



<li class="">As a <strong>modular AI skill</strong> within a larger orchestrated flow</li>
</ul>



<p class="">For example, you could use the agent to automatically generate weekly sales summaries and send them via email to business users — no dashboards needed.</p>



<h3 class="wp-block-heading">2. Use in Multi-Agent Systems with Copilot Studio</h3>



<p class="">Microsoft recently <a href="https://blog.fabric.microsoft.com/en-us/blog/fabric-data-agents-microsoft-copilot-studio-a-new-era-of-multi-agent-orchestration" target="_blank" rel="noreferrer noopener">announced </a>integration of Fabric data agent with Copilot Studio. This means data agent also supports <strong>multi-agent</strong> patterns where different agents work together, each specializing in their role.</p>



<p class="">Your Data Agent can act as:</p>



<ul class="wp-block-list">
<li class="">A <strong>domain expert</strong> (e.g., Sales Agent, Inventory Agent)</li>



<li class="">A <strong>knowledge base</strong> that other agents query</li>



<li class="">A <strong>collaborative AI</strong> alongside others like a document reader, chatbot, or metric generator</li>
</ul>



<h4 class="wp-block-heading">Example: Multi-Agent Use Case</h4>



<p class="">Imagine a scenario where you’ve built:</p>



<ul class="wp-block-list">
<li class="">A <strong>&#8220;Sales Insights Agent&#8221;</strong> (based on the Sales model)</li>



<li class="">A <strong>&#8220;Customer Sentiment Agent&#8221;</strong> (that reads survey data or feedback documents)</li>



<li class="">A <strong>&#8220;Decision Support Agent&#8221;</strong> (that aggregates insights from both)</li>
</ul>



<p class="">Now, a user asks the Decision Support Agent:<br><strong>&#8220;Should we invest more in red-colored bikes for Q3 promotions?&#8221;</strong></p>



<p class="">Here’s what happens behind the scenes:</p>



<ol class="wp-block-list">
<li class="">The <strong>Sales Agent</strong> looks up sales trends for red bikes from your Data Agent.</li>



<li class="">The <strong>Sentiment Agent</strong> checks recent customer feedback about product quality or color preferences.</li>



<li class="">The <strong>Decision Agent</strong> combines both and generates a recommendation — backed by data and context.</li>
</ol>



<p class="">This makes your Data Agent a <strong>building block in a broader AI ecosystem</strong>, not just a standalone tool.</p>



<h2 class="wp-block-heading">Final Thoughts</h2>



<p class="">Data Agents in Fabric aren&#8217;t just experimental toys; they&#8217;re fully capable assistants for real business scenarios. Whether you&#8217;re a data engineer, analyst, or decision maker, you’ll find value in being able to converse with your data.</p>



<p class="">For me, this agent worked perfectly with the AdventureWorksDW model and started answering meaningful business questions within minutes,  no DAX, no Power BI visuals, no joins to write.</p>



<p class="">This service is currently in preview. It does not currently render charts. Hopefully, future updates will enable it to generate Power BI level visuals on the fly.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>



<p class="has-background" style="background-color:#beefca"><strong>Pro tips:</strong><br>1. <a href="https://azureops.org/articles/ssms-21-copilot/" target="_blank" rel="noreferrer noopener">Learn </a>how to integrate Microsoft Copilot in SQL Server Management Studio 21.</p>
<p>The post <a href="https://azureops.org/articles/data-agent-in-microsoft-fabric-heres-how-it-works/">Data Agent in Microsoft Fabric &#8211; Here&#8217;s How it Works</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8717</post-id>	</item>
		<item>
		<title>Azure Analysis Services Model Missing</title>
		<link>https://azureops.org/articles/azure-analysis-services-model-missing/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Thu, 01 May 2025 14:19:00 +0000</pubDate>
				<category><![CDATA[Analysis Services]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[azure analysis services admin]]></category>
		<category><![CDATA[azure analysis services model disappear]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=8399</guid>

					<description><![CDATA[<p>In this article, we will see how to fix Azure Analysis Services model missing issue.</p>
<p>The post <a href="https://azureops.org/articles/azure-analysis-services-model-missing/">Azure Analysis Services Model Missing</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="">Last week, our <a href="https://azure.microsoft.com/en-us/products/analysis-services" target="_blank" rel="noreferrer noopener">Azure Analysis Services</a> Model suddenly disappeared and all the PowerBI reports using that model stopped working or<a href="https://azureops.org/articles/connect-to-azure-analysis-services/" target="_blank" rel="noreferrer noopener"> connection to AAS model from SSMS</a> not working. If the account that was the owner of the Azure Analysis Services (AAS) model, and it got deleted, the model might have become inaccessible because there are no active administrators left. In this article, we will see how to fix Azure Analysis Services model missing issue.</p>



<h3 class=" wp-block-heading">Assign a New Admin via Azure Portal</h3>



<ol class="wp-block-list">
<li class="">Go to the <strong>Azure Portal</strong>.</li>



<li class="">Navigate to <strong>Azure Analysis Services</strong>.</li>



<li class="">Find the AAS server where your model was deployed.</li>



<li class="">Under <strong>Settings</strong>, click <strong>Administrators</strong>.</li>



<li class="">Add a new administrator (Global Admins or Subscription Owners can do this).</li>



<li class="">Save the changes.</li>



<li class="">Delete the inactive admin account if any from the admin list.</li>
</ol>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/04/How-to-fix-Azure-analysis-services-model-missing-issue.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="661" data-attachment-id="8401" data-permalink="https://azureops.org/articles/azure-analysis-services-model-missing/how-to-fix-azure-analysis-services-model-missing-issue/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/04/How-to-fix-Azure-analysis-services-model-missing-issue.png?fit=1351%2C744&amp;ssl=1" data-orig-size="1351,744" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="How to fix Azure analysis services model missing issue" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/04/How-to-fix-Azure-analysis-services-model-missing-issue.png?fit=1200%2C661&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/04/How-to-fix-Azure-analysis-services-model-missing-issue.png?resize=1200%2C661&#038;ssl=1" alt="Azure Analysis Services Model Missing" class="wp-image-8401" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/04/How-to-fix-Azure-analysis-services-model-missing-issue.png?resize=1200%2C661&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/04/How-to-fix-Azure-analysis-services-model-missing-issue.png?resize=300%2C165&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/04/How-to-fix-Azure-analysis-services-model-missing-issue.png?resize=1126%2C620&amp;ssl=1 1126w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/04/How-to-fix-Azure-analysis-services-model-missing-issue.png?resize=768%2C423&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/04/How-to-fix-Azure-analysis-services-model-missing-issue.png?resize=450%2C248&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/04/How-to-fix-Azure-analysis-services-model-missing-issue.png?resize=600%2C330&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/04/How-to-fix-Azure-analysis-services-model-missing-issue.png?w=1351&amp;ssl=1 1351w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<p class="">With the addition of a new admin account, the Azure Analysis Services model missing issue is resolved.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>
<p>The post <a href="https://azureops.org/articles/azure-analysis-services-model-missing/">Azure Analysis Services Model Missing</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8399</post-id>	</item>
		<item>
		<title>CS2001 Missing AssemblyAttributes.cs when executing SSIS package deployed to the server</title>
		<link>https://azureops.org/articles/missing-assemblyattributes-when-executing-ssis-package/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Wed, 05 Mar 2025 07:02:00 +0000</pubDate>
				<category><![CDATA[Microsoft BI]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[SSIS Catalog Migration]]></category>
		<category><![CDATA[SSIS Errors]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=8153</guid>

					<description><![CDATA[<p>How to resolve error : CS2001 Missing AssemblyAttributes.cs when executing SSIS package deployed to the server.</p>
<p>The post <a href="https://azureops.org/articles/missing-assemblyattributes-when-executing-ssis-package/">CS2001 Missing AssemblyAttributes.cs when executing SSIS package deployed to the server</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="">Error at Script Task: The binary code for the script is not found. Please open the script in the designer by clicking Edit Script button and make sure it builds successfully.<br>Error at Script Task: There were errors during task validation.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Missing-AssemblyAttributes-SSIS-1.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1159" height="182" data-attachment-id="8156" data-permalink="https://azureops.org/articles/missing-assemblyattributes-when-executing-ssis-package/missing-assemblyattributes-ssis-2/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Missing-AssemblyAttributes-SSIS-1.png?fit=1159%2C182&amp;ssl=1" data-orig-size="1159,182" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Missing AssemblyAttributes SSIS" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Missing-AssemblyAttributes-SSIS-1.png?fit=1159%2C182&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Missing-AssemblyAttributes-SSIS-1.png?resize=1159%2C182&#038;ssl=1" alt="" class="wp-image-8156" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Missing-AssemblyAttributes-SSIS-1.png?w=1159&amp;ssl=1 1159w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Missing-AssemblyAttributes-SSIS-1.png?resize=300%2C47&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Missing-AssemblyAttributes-SSIS-1.png?resize=768%2C121&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Missing-AssemblyAttributes-SSIS-1.png?resize=450%2C71&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Missing-AssemblyAttributes-SSIS-1.png?resize=600%2C94&amp;ssl=1 600w" sizes="(max-width: 1159px) 100vw, 1159px" /></a></figure>



<p class="">To resolve the CS2001 &#8220;Missing AssemblyAttributes.cs&#8221; error when executing an SSIS package on a deployed server, follow these steps to adjust folder permissions:</p>



<ol class="wp-block-list">
<li class="">Open <strong>Windows Explorer</strong> and navigate to <code>C:\Windows\Temp\</code>.</li>



<li class="">Right-click the folder and select <strong>Properties</strong>.</li>



<li class="">Switch to the <strong>Security</strong> tab and click <strong>Advanced</strong>.</li>



<li class="">In the <strong>Permissions</strong> tab, select <strong>Change Permissions</strong>.</li>



<li class="">Locate the relevant permission entry, then choose <strong>Edit</strong>.</li>



<li class="">Ensure the following permissions are enabled with <strong>Allow</strong> checked:
<ul class="wp-block-list">
<li class=""><strong>Traverse folder / Execute file</strong></li>



<li class=""><strong>Create files / Write data</strong></li>



<li class=""><strong>Create folders / Append data</strong></li>



<li class=""><strong>List folder / Read data</strong></li>



<li class=""><strong>Take ownership</strong></li>
</ul>
</li>



<li class="">Click <strong>OK</strong> to save the changes and close the window.</li>



<li class="">Press <strong>Apply to confirm</strong> any prompts that appear.</li>
</ol>



<p class="">Even if the logged-in user already has full control, modifying the permissions for the &#8220;Users&#8221; group resolved the issue.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>
<p>The post <a href="https://azureops.org/articles/missing-assemblyattributes-when-executing-ssis-package/">CS2001 Missing AssemblyAttributes.cs when executing SSIS package deployed to the server</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8153</post-id>	</item>
		<item>
		<title>The specified provider is not supported. Please choose different provider in connection manager SSIS</title>
		<link>https://azureops.org/articles/the-specified-provider-is-not-supported/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Sun, 09 Feb 2025 04:05:13 +0000</pubDate>
				<category><![CDATA[Microsoft BI]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[SSIS Errors]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=8290</guid>

					<description><![CDATA[<p>If you encounter an error in SQL Server Data Tools (SSDT) for Visual Studio while working with SQL Server Integration Services (SSIS), it could be due to the missing OLE DB or ADO.NET provider on your machine. This missing component prevents SSIS from establishing a connection, leading to the following error message:</p>
<p>The post <a href="https://azureops.org/articles/the-specified-provider-is-not-supported/">The specified provider is not supported. Please choose different provider in connection manager SSIS</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="">An error in SQL Server Data Tools (SSDT) for Visual Studio while working with SQL Server Integration Services (SSIS) could be due to the missing OLE DB or ADO.NET provider on your machine. This missing component prevents SSIS from establishing a connection, leading to the following error message:</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/image.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="804" height="655" data-attachment-id="8292" data-permalink="https://azureops.org/articles/the-specified-provider-is-not-supported/image-30/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/image.png?fit=804%2C655&amp;ssl=1" data-orig-size="804,655" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/image.png?fit=804%2C655&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/image.png?resize=804%2C655&#038;ssl=1" alt="The specified provider is not supported. Please choose different provider in connection manager SSIS" class="wp-image-8292" style="width:679px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/image.png?w=804&amp;ssl=1 804w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/image.png?resize=300%2C244&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/image.png?resize=761%2C620&amp;ssl=1 761w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/image.png?resize=768%2C626&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/image.png?resize=450%2C367&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/image.png?resize=600%2C489&amp;ssl=1 600w" sizes="(max-width: 804px) 100vw, 804px" /></a></figure>



<p class="">TITLE: Connection Manager <br>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; The specified provider is not supported. Please choose different provider in connection manager. <br>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; BUTTONS: OK &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>



<h2 class="wp-block-heading">Cause of the Issue</h2>



<p class="">The error typically occurs when the SQL Server Native Client required for database connectivity is missing or not installed properly. This provider is essential for SSIS to communicate with SQL Server using OLE DB.</p>



<h2 class="wp-block-heading">Solution</h2>



<p class="">To resolve this issue, you need to install the SQL Server Native Client on your machine. Follow the step-by-step guide below to download and install it properly.</p>



<h3 class="wp-block-heading">Step-by-Step Guide to Install SQL Server Native Client</h3>



<h4 class="wp-block-heading">1. Download the Installer:</h4>



<ul class="wp-block-list">
<li class="">Visit the <a href="https://www.microsoft.com/en-us/download/details.aspx?id=56041">Microsoft Download Center</a>.</li>



<li class="">Locate the <strong>SQL Server Native Client (sqlncli.msi)</strong> download link on the page.</li>



<li class="">Click the <strong>Download</strong> button to start the process.</li>
</ul>



<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/Download-sqlncli.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="393" data-attachment-id="8291" data-permalink="https://azureops.org/articles/the-specified-provider-is-not-supported/download-sqlncli/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/Download-sqlncli.png?fit=1210%2C396&amp;ssl=1" data-orig-size="1210,396" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Download sqlncli" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/Download-sqlncli.png?fit=1200%2C393&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/Download-sqlncli.png?resize=1200%2C393&#038;ssl=1" alt="specified provider is not supported" class="wp-image-8291" style="width:838px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/Download-sqlncli.png?resize=1200%2C393&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/Download-sqlncli.png?resize=300%2C98&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/Download-sqlncli.png?resize=768%2C251&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/Download-sqlncli.png?resize=450%2C147&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/Download-sqlncli.png?resize=600%2C196&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/02/Download-sqlncli.png?w=1210&amp;ssl=1 1210w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h4 class="wp-block-heading">2. Install the Native Client:</h4>



<ul class="wp-block-list">
<li class="">Double-click the downloaded sqlncli.msi file.</li>



<li class="">Follow the on-screen instructions in the setup wizard.</li>



<li class="">Accept the license agreement and complete the installation process.</li>
</ul>



<h4 class="wp-block-heading">3. Restart Visual Studio:</h4>



<ul class="wp-block-list">
<li class="">Once the installation is complete, restart<strong> </strong>Visual Studio (which contains SQL Server Data Tools).</li>



<li class="">Open your SSIS project again and check if the issue is resolved.</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="">By installing the SQL Server Native Client, you enable Visual Studio (SSDT) to correctly recognize the required provider, resolving the error and allowing smooth SSIS operations. If the problem persists, ensure that your Visual Studio and SSDT versions are up to date.</p>



<p class="has-background" style="background-color:#bdefca"><strong>Pro tips:<br></strong>1. <a href="https://azureops.org/articles/migrate-ssisdb-to-a-new-server/" target="_blank" rel="noreferrer noopener">Learn </a>how to migrate SSISDB from one server to another in just a few clicks.<br>2. You may come accross below error while trying to run older SSIS packages in SSIS 2022 (SSISDB).<br>The requested OLE DB provider SQLNCLI11.1 is not registered. If the 64-bit driver is not installed, run the package in 32-bit mode. Error code: 0x00000000. An OLE DB record is available. Source: &#8220;Microsoft OLE DB Service Components&#8221; Hresult: 0x80040154 Description: &#8220;Class not registered&#8221;.<br>Use the same above solution to fix this issue on the SSISDB server.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>



<p class=""></p>
<p>The post <a href="https://azureops.org/articles/the-specified-provider-is-not-supported/">The specified provider is not supported. Please choose different provider in connection manager SSIS</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8290</post-id>	</item>
		<item>
		<title>Deploy DACPAC to Azure SQL Database</title>
		<link>https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Wed, 01 Jan 2025 07:56:13 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[SQL Database]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[dacpac]]></category>
		<category><![CDATA[dacpac sql server]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=8224</guid>

					<description><![CDATA[<p>This guide will walk you through the process of deploy DACPAC to Azure SQL database directly from Visual Studio. </p>
<p>The post <a href="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/">Deploy DACPAC to Azure SQL Database</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="">Deploying a DACPAC to an Azure SQL Database is a critical step in ensuring your database changes are effectively moved from development to production. This guide will walk you through the process of deploy DACPAC to Azure SQL database directly from Visual Studio. </p>



<p class="has-pale-cyan-blue-background-color has-background"><strong>Prerequisites:</strong><br>1. <a href="https://visualstudio.microsoft.com/downloads/" target="_blank" rel="noreferrer noopener">Visual Studio</a> with data tools installed on your system.<br>2. An Azure SQL Database set up and accessible.<br>3. A DACPAC file ready for deployment.</p>



<h2 class="wp-block-heading">Create a DACPAC File</h2>



<p class="">In this <a href="https://azureops.org/articles/dacpac-sql-server-database/" target="_blank" rel="noreferrer noopener">post</a>, we cover the process of creating a DACPAC file, a critical artifact that encapsulates the schema and objects of a SQL Server database. Learn how to build and validate your DACPAC files to ensure seamless deployments.</p>



<h2 class="wp-block-heading">Open a DACPAC File in Visual Studio</h2>



<p class="">Discover how to open and inspect a DACPAC file in Visual Studio. This <a href="https://azureops.org/articles/how-to-open-dacpac-file-in-visual-studio/" target="_blank" rel="noreferrer noopener">guide </a>provides details of how to open DACPAC file in Visual Studio.</p>



<h2 class="wp-block-heading">Deploy DACPAC to Azure SQL Database from Visual Studio</h2>



<p class="">Follow the below steps to deploy the DACPAC project from visual Studio. You can follow the same below steps to deploy database project to any SQL Server database or Azure Managed Instance. Make sure to select correct target platform and provide applicable connection details.</p>



<h4 class="wp-block-heading">1. Open Visual Studio</h4>



<ol start="1" class="wp-block-list">
<li class="">Launch Visual Studio and open your solution or project.</li>



<li class="">Ensure you have the <strong>SQL Server Data Tools (SSDT)</strong> installed.</li>
</ol>



<h4 class="wp-block-heading">2. Change target platform of database project</h4>



<ol class="wp-block-list">
<li class="">Right-click on database project and click properties. </li>



<li class="">Change the Target platform to Microsoft Azure SQL Database as shown in the below image. </li>
</ol>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="753" height="203" data-attachment-id="8247" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/image-28/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?fit=753%2C203&amp;ssl=1" data-orig-size="753,203" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?fit=753%2C203&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?resize=753%2C203&#038;ssl=1" alt="Change target platform of SQL database project. " class="wp-image-8247" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?w=753&amp;ssl=1 753w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?resize=300%2C81&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?resize=450%2C121&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?resize=600%2C162&amp;ssl=1 600w" sizes="(max-width: 753px) 100vw, 753px" /></a></figure>



<h4 class="wp-block-heading">3. Publish the Database Project</h4>



<p class="">Right-click on the project and select <strong>Publish</strong> from the context menu.</p>



<p class="">In <strong>Solution Explorer</strong>, locate your database project.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="555" height="461" data-attachment-id="8227" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/select-dacpac-project-for-deployment/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?fit=555%2C461&amp;ssl=1" data-orig-size="555,461" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Select DACPAC project for deployment" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?fit=555%2C461&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?resize=555%2C461&#038;ssl=1" alt="publish dacpac file from Visual Studio" class="wp-image-8227" style="width:406px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?w=555&amp;ssl=1 555w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?resize=300%2C249&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?resize=450%2C374&amp;ssl=1 450w" sizes="(max-width: 555px) 100vw, 555px" /></a></figure>



<h4 class="wp-block-heading">4. Configure the Deployment Target</h4>



<p class="">1. In the <strong>Publish Database</strong> dialog, click <strong>Edit</strong> to specify the target database.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="835" height="374" data-attachment-id="8228" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/edit-target-server-credentials/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?fit=835%2C374&amp;ssl=1" data-orig-size="835,374" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Edit target server credentials" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?fit=835%2C374&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?resize=835%2C374&#038;ssl=1" alt="Create Azure SQL database connection for dacpac deployment " class="wp-image-8228" style="width:558px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?w=835&amp;ssl=1 835w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?resize=300%2C134&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?resize=768%2C344&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?resize=450%2C202&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?resize=600%2C269&amp;ssl=1 600w" sizes="(max-width: 835px) 100vw, 835px" /></a></figure>



<p class="">2. In the <strong>Edit Target Database Connection</strong> window:</p>



<ul class="wp-block-list">
<li class="">Select <strong>Azure SQL Database</strong> as the target.</li>



<li class="">Enter the server name, authentication details, and select the target database.</li>



<li class="">Test the connection to ensure it is valid.</li>



<li class="">Click <strong>OK</strong> to confirm.</li>
</ul>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="879" height="645" data-attachment-id="8229" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/provide-target-server-and-database-details/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?fit=879%2C645&amp;ssl=1" data-orig-size="879,645" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Provide target server and database details" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?fit=879%2C645&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?resize=879%2C645&#038;ssl=1" alt="Deploy DACPAC to Azure SQL Database" class="wp-image-8229" style="width:555px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?w=879&amp;ssl=1 879w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?resize=300%2C220&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?resize=845%2C620&amp;ssl=1 845w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?resize=768%2C564&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?resize=450%2C330&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?resize=600%2C440&amp;ssl=1 600w" sizes="(max-width: 879px) 100vw, 879px" /></a></figure>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h4 class="wp-block-heading">5. Review and Publish</h4>



<p class="">1. Back in the <strong>Publish Database</strong> dialog, review the settings to ensure the correct DACPAC file and target database are selected.</p>



<p class="">2. Optionally, click <strong>Advanced</strong> to configure deployment options such as excluding certain schema changes as shown in the below image.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="507" height="639" data-attachment-id="8250" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/image-29/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?fit=507%2C639&amp;ssl=1" data-orig-size="507,639" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?fit=507%2C639&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?resize=507%2C639&#038;ssl=1" alt="" class="wp-image-8250" style="width:378px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?w=507&amp;ssl=1 507w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?resize=238%2C300&amp;ssl=1 238w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?resize=492%2C620&amp;ssl=1 492w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?resize=450%2C567&amp;ssl=1 450w" sizes="(max-width: 507px) 100vw, 507px" /></a></figure>



<p class="">3. Click <strong>Publish</strong> to start the deployment process.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="683" height="344" data-attachment-id="8230" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/click-publish-dapac-project-to-azure-sql/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?fit=683%2C344&amp;ssl=1" data-orig-size="683,344" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="Click publish dapac project to azure sql" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?fit=683%2C344&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?resize=683%2C344&#038;ssl=1" alt="Deploy DACPAC to Azure SQL Database" class="wp-image-8230" style="width:535px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?w=683&amp;ssl=1 683w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?resize=300%2C151&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?resize=450%2C227&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?resize=600%2C302&amp;ssl=1 600w" sizes="(max-width: 683px) 100vw, 683px" /></a></figure>



<h4 class="wp-block-heading">6. Monitor and Verify Deployment</h4>



<ol start="1" class="wp-block-list">
<li class="">Monitor the progress of dacpac publish in Visual Studio as shown in the below image.</li>



<li class="">Once the deployment is complete, open <strong>SQL Server Management Studio (SSMS)</strong> or use Visual Studio’s built-in tools to verify the schema changes in your Azure SQL Database.</li>



<li class="">Run test queries to confirm the database is functioning as expected.</li>
</ol>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="677" height="90" data-attachment-id="8231" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/monitor-the-progress-of-deployment/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?fit=677%2C90&amp;ssl=1" data-orig-size="677,90" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="monitor the progress of deployment" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?fit=677%2C90&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?resize=677%2C90&#038;ssl=1" alt="" class="wp-image-8231" style="width:581px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?w=677&amp;ssl=1 677w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?resize=300%2C40&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?resize=450%2C60&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?resize=600%2C80&amp;ssl=1 600w" sizes="(max-width: 677px) 100vw, 677px" /></a></figure>



<p class="has-background" style="background-color:#bcefca"><strong>Pro tips:</strong><br>1. Refer to this <a href="https://azureops.org/articles/implement-azure-sql-database-deployment-ci-cd-pipeline/" target="_blank" rel="noreferrer noopener">post </a>if you wish to Automate Azure SQL Database deployment using Azure DevOps CICD pipeline.<br>2. If you skip target platform change step during the deployment, you may get an error &#8220;A project which specifies SQL Server 2022 or Azure SQL Database Managed Instance as the target platform cannot be published to Microsoft Azure SQL Database v12.&#8221;. Refer to this <a href="https://azureops.org/articles/a-project-which-specifies-sql-server-2022-or-azure-sql-database-managed-instance-as-the-target-platform-cannot-be-published-to-microsoft-azure-sql-database-v12/" target="_blank" rel="noreferrer noopener">post </a>to learn more about it.<br>3. Test your DACPAC deployment on a local environment before pushing it to Azure.<br>4. Always take a backup of your target Azure SQL Database before deployment.<br>5. Use tools like SQL Compare to identify schema differences between the DACPAC and the target database.<br></p>



<h2 class="wp-block-heading">FAQ</h2>


<div class="wp-block-uagb-faq uagb-faq__outer-wrap uagb-block-f06236a7 uagb-faq-icon-row uagb-faq-layout-accordion uagb-faq-expand-first-true uagb-faq-inactive-other-true uagb-faq__wrap uagb-buttons-layout-wrap uagb-faq-equal-height     " data-faqtoggle="true" role="tablist"><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-3becbfb9 " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">1. How do I deploy a DACPAC using SSMS?</span></div><div class="uagb-faq-content"><p>In SQL Server Management Studio, right-click the target database → Tasks → Deploy Data-tier Application → select your DACPAC file.</p></div></div><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-e5bcb60d " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">2. Can I deploy a DACPAC using command line?</span></div><div class="uagb-faq-content"><p>Yes. Use the <code>sqlpackage.exe /Action:Publish /SourceFile:mydb.dacpac /TargetConnectionString:"..."</code> command.</p></div></div><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-dfafc55e " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">3. What errors are common during DACPAC deployment?</span></div><div class="uagb-faq-content"><p>Common issues include schema conflicts, missing permissions, and version mismatches. Use <code>/p:BlockOnPossibleDataLoss=false</code> carefully if schema changes drop objects.</p></div></div></div>


<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>
<p>The post <a href="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/">Deploy DACPAC to Azure SQL Database</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8224</post-id>	</item>
	</channel>
</rss>
