Posts

Update Azure SQL Firewall Rule using PowerShell (update 2018)

Image
Microsoft Azure SQL only allows connections from whitelisted IP addresses. My ISP seemed to change my external/public IP address daily. The combination of these two things was very annoying for me. I assembled the powershell script below to make my life a little easier. It updates the firewall rule for each Azure SQL instance, and ensures they are all set to my current IP address. Note: There are two categories of Azure PowerShell scripts/cmdlets. There are Resource Management cmdlets and Service Management cmdlets. I will describe how to perform this task with both below: Service Management (the older way) 1. Install and Configure  https://github.com/Azure/azure-powershell#installation 2. Execute Get-AzurePublishSettingsFile to get the publishsettings file for the subscription you're going to be working with (a browser window will open, select the profile there. Note: you can add multiple publish settings.). 3. Execute Import-AzurePublishSettingsFile and pr

Convert SQL Server Varbinary to Byte Array

I had a need to convert the HEX output from SQL Server Management Studio's Results to Grid output of a varbinary column  back to the byte array of the file it represented. I couldn't find an all-in-one script online, so I thought I'd create this C# gist. (original parse script here ) https://gist.github.com/aaronhoffman/ad16b27d14e2f5d7e16c Hope this helps, Aaron

PowerShell - List File Line Count For Files in a Directory that Match a Given Pattern

I had a need to get the total count of all lines, for a given set of .csv files. For example, there are 5 files each with 1000 lines, I wanted a script that would output: 1000, 1000, 1000, 1000, 1000. I could not find a script or command to do this, so I wrote one in PowerShell. Enjoy List File Line Count For Files in a Directory that Match a Given Pattern https://gist.github.com/aaronhoffman/416b88e64b970c4c9cb4 hope this helps, Aaron

Always Open Google Chrome with Default User Active from Taskbar

Image
Users in Google Chrome are great. I wish every browser had a similar feature. If you have multiple browser windows open at once running different users (one for work email, one for personal, for example) a downside is that whichever browser window you close last will be the User that is used when you open Chrome again. However, by modifying the taskbar shortcut you can override this functionality and always have your "Default" user be used. Right click on the Google Chrome taskbar icon, then right click on the "Google Chrome" entry in the popup menu. (Apparently Windows Print Screen does not work if the taskbar is active, so I had to take a picture on my phone...) In the Google Chrome Properties shortcut settings window that appears, append `  --profile-directory="Default" ` to the end of the Target value. And that's it. Now when this shortcut is used Google Chrome should open using the default profile no matter which User was associa

SQL Server vs .NET DateTime Leap Year Arithmetic

I recently refactored some code that was performing date arithmetic in SQL Server. The code was attempting to retrieve the "same day next year" by adding 365 days to the date provided. I was refactoring this logic out of SQL Server and in to .NET, and I was concerned that .NET's DateTime arithmetic wouldn't match SQL Server. I was pleasantly surprised that the results were the same. However, I should call out that perhaps in your situation adding 365 days to a given date is not appropriate for getting the "same day next year" value. I also compared this logic when preforming a "Add years + 1" and the results were also the same. (However, to be clear, adding 365 days differed from adding 1 year, but both SQL and .NET preformed the same given the method used.) source code:  https://gist.github.com/aaronhoffman/3d997390dab7f69e6597 results table: Method Value StartDate .NET Result SQL Result AddDays 365 2/27/2011 2/27/2012 2/27/2012 AddYears

Generate SQL Statements to Group By Each Column of Table Separately

When working with data with the intent to visualize, there are times when I'll want to group by every column in a table, separately, one at a time, to determine the possible values in that column. I do this often enough I created a simple SQL Query to build these group by statements for me: declare @table_name varchar(200) = 'dbo.mytablename' select 'select ' + c.name + ', count(1) cnt from ' + @table_name + ' group by ' + c.name + ' order by 2 ' from sys.columns c where c.object_id = object_id(@table_name) gist:  https://gist.github.com/aaronhoffman/d49d3705fd716b0fe6cb Hope this helps, Aaron

ASP.NET MVC 5 Identity, Users, Roles, Accounts, SQL to Generate Tables

In ASP.NET MVC 5, user management changed significantly from ASP.NET MVC 4. This is the start of a series of blog posts on the topic (long overdue). This post is on the SQL that your website executes to initially create the identity (user, role) tables. The SQL the ApplicationUserManager and ApplicationSigninManager generate and execute is below: CREATE TABLE [dbo].[AspNetRoles] (     [Id] [nvarchar](128) NOT NULL,     [Name] [nvarchar](256) NOT NULL,     CONSTRAINT [PK_dbo.AspNetRoles] PRIMARY KEY ([Id]) ) go CREATE TABLE [dbo].[AspNetUserRoles] (     [UserId] [nvarchar](128) NOT NULL,     [RoleId] [nvarchar](128) NOT NULL,     CONSTRAINT [PK_dbo.AspNetUserRoles] PRIMARY KEY ([UserId], [RoleId]) ) go CREATE TABLE [dbo].[AspNetUsers] (     [Id] [nvarchar](128) NOT NULL,     [Email] [nvarchar](256),     [EmailConfirmed] [bit] NOT NULL,     [PasswordHash] [nvarchar](max),     [SecurityStamp] [nvarchar](max),     [PhoneNumber] [nvarchar](max),     [PhoneNumber