Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues with SQLCMD special characters going from 2.6.0 -> 2.6.1 / 3.0.0 #701

Closed
MSACATS opened this issue Jan 29, 2025 · 25 comments · Fixed by #702
Closed

Issues with SQLCMD special characters going from 2.6.0 -> 2.6.1 / 3.0.0 #701

MSACATS opened this issue Jan 29, 2025 · 25 comments · Fixed by #702
Assignees
Labels
bug Something isn't working

Comments

@MSACATS
Copy link

MSACATS commented Jan 29, 2025

Hi, upon upgrading from 2.6.0 to 3.0.0 we started having problems deploying (specifically our pre/post-deploy scripts), and saw this change in 2.6.1: https://github.com/rr-wfm/MSBuild.Sdk.SqlProj/pull/459/files

We confirmed that we have problems with 2.6.1 as well, but they manifested differently. As such we started focusing on 3.0.0 for a minimal repro. We've confirmed that the issue is with SQLCMD variables with special characters.

We tried to develop a minimal repro, however we kept finding more and more problematic characters so it has become increasingly complex. I assume it's some same root cause. I'm attaching it here (MsBuildSqlTest.zip) with instructions below.

In the meantime, is there any known way in 3.0.0 to use SQLCMD values with special characters? (&, <, (space), etc.)?
Previously we simply had to wrap the value in quotes. Space seems to work (TestValue3), but the rest seem to hopelessly break the command line.

Instructions:

  1. have a target SQL server available
  2. have an environment with .net core available
  3. edit deploy.ps1 and populate with a SQL-auth user/password; otherwise if using windows auth you can probably remove lines 21/22 and use that
  4. run .\deploy.ps1, and then run it again (so we can use the pre-deploy script). It will fail both times, but you can see the results with the following query:
SELECT *
FROM [MsBuildSqlTest].[dbo].[PreDeployTable]

SELECT *
FROM [MsBuildSqlTest].[dbo].[PostDeployTable]
  1. if desired, you can comment out some of the other SQLCMD variables (TestValue6, TestValue7, TestValue8, TestValue99) and the corresponding lines in the pre/post-deploy scripts. Also you can uncomment TestValue1/TestValue2 to see the compilation errors
@ErikEJ
Copy link
Collaborator

ErikEJ commented Jan 30, 2025

@jmezach Maybe we should stop passing the default value, as we do not use it any more?

#656

@jmezach
Copy link
Member

jmezach commented Jan 30, 2025

Yeah, that sounds like a good idea.

@MSACATS
Copy link
Author

MSACATS commented Jan 30, 2025

I am not sure if that's the whole issue: we are seeing the same problem even when we are passing in the value ourselves using /V:

@ErikEJ
Copy link
Collaborator

ErikEJ commented Jan 30, 2025

@MSACATS Our dotnet publish support is for simple local development purposes only, for any other publishing please use sqlpackage

@MSACATS
Copy link
Author

MSACATS commented Jan 30, 2025

I'm not sure I follow -- we are using it for local purposes (e.g. unit testing), and we now are unable to pass in certain values during deployment

@ErikEJ
Copy link
Collaborator

ErikEJ commented Jan 30, 2025

Please use sqlpackage for complex local deployment.

It is very easy to install as a .NET global tool

@MSACATS
Copy link
Author

MSACATS commented Jan 30, 2025

We're also using https://learn.microsoft.com/en-us/dotnet/api/microsoft.sqlserver.dac.dacpackage programmatically which is breaking as well. I'm concerned that the issue is that something is going wrong in the dacpac itself but I can only practically observe the outside behavior.

@MSACATS
Copy link
Author

MSACATS commented Jan 30, 2025

I apologize for the back and forth -- I'm trying to get to the bottom of exactly what works and what doesn't.

Here are some simple csproj examples that maybe will make the situation clearer. Digging through the readme, it looks like we may also have had an issue with the Value vs DefaultValue, which I've fixed in the versions below though it didn't make any evident difference.


2.6.0: works, if values are quoted. Build output below. Notice how there are two rounds of adding sqlcmd variables, wrapped with single quotes vs not

MsBuildSqlTest (2.6.0).zip

(Simply unzip this on top of the other one, and overwrite the csproj)

  Determining projects to restore...
  All projects are up-to-date for restore.
  Using target framework net8.0 to run DacpacTool
  Using package name MsBuildSqlTest and version 1.0.0
  Using SQL Server version Sql150
  Adding SqlCmd variable TestValue0 with default value abcd
  Adding SqlCmd variable TestValue1 with default value  &
  Adding SqlCmd variable TestValue2 with default value abc&xyz
  Adding SqlCmd variable TestValue3 with default value abc xyz
  Adding SqlCmd variable TestValue4 with default value abcxyz
  Adding SqlCmd variable TestValue5 with default value abc<>xyz
  Adding SqlCmd variable TestValue6 with default value abc xyz
  Adding SqlCmd variable TestValue7 with default value abc xyz
  Adding SqlCmd variable TestValue8 with default value abc&xyz
  Adding SqlCmd variable TestValue99 with default value abc &xyz
  Adding SqlCmd variable TestValue100 with default value abcd
  Adding C:\Users\test\source\repos\MsBuildSqlTest\DeploymentScripts\Script.PostDeployment.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\DeploymentScripts\Script.PreDeployment.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\PostDeployTable.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\PreDeployTable.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\PostDeployTable.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\PreDeployTable.sql to the model
  Deleting existing file C:\Users\test\source\repos\MsBuildSqlTest\obj\Debug\netstandard2.0\MsBuildSqlTest.dacpac
  Writing model to C:\Users\test\source\repos\MsBuildSqlTest\obj\Debug\netstandard2.0\MsBuildSqlTest.dacpac
  Adding C:\Users\test\source\repos\MsBuildSqlTest\DeploymentScripts\Script.PreDeployment.sql to package
  Adding C:\Users\test\source\repos\MsBuildSqlTest\DeploymentScripts\Script.PostDeployment.sql to package
  MsBuildSqlTest -> C:\Users\test\source\repos\MsBuildSqlTest\bin\Debug\netstandard2.0\MsBuildSqlTest.dacpac
  Setting property IncludeCompositeObjects to value True
  Setting property IncludeCompositeObjects to value True
  Setting property IncludeCompositeObjects to value True
  Using encrypt: False
  Adding SQLCMD variable 'TestValue0' with value 'abcd'
  Adding SQLCMD variable 'TestValue100' with value 'abcd'
  Adding SQLCMD variable 'TestValue1' with value ' &'
  Adding SQLCMD variable 'TestValue2' with value 'abc&xyz'
  Adding SQLCMD variable 'TestValue8' with value 'abc&xyz'
  Adding SQLCMD variable 'TestValue3' with value 'abc xyz'
  Adding SQLCMD variable 'TestValue6' with value 'abc xyz'
  Adding SQLCMD variable 'TestValue7' with value 'abc xyz'
  Adding SQLCMD variable 'TestValue4' with value 'abcxyz'
  Adding SQLCMD variable 'TestValue5' with value 'abc<>xyz'
  Adding SQLCMD variable 'TestValue99' with value 'abc &xyz'
  Using target server '127.0.0.1' on port 1601
  Using SQL Server Authentication
  Deploying package 'MsBuildSqlTest' version '1.0.0' to database 'MsBuildSqlTest'
  Initializing deployment (Start)
  Initializing deployment (Complete)
  Analyzing deployment plan (Start)
  Analyzing deployment plan (Complete)
  Updating database (Start)
  Running pre-deployment script
  Pre-deployment script complete
  Running post-deployment script
  Post-deployment script complete
  Update complete.
  Updating database (Complete)
  Successfully deployed database 'MsBuildSqlTest'

2.6.1. If you simply update the previous one to 2.6.1 (keep the quotes) compilation fails, because now 2.6.1 is itself wrapping those values in quotes so presumably they are now double quoted.

MsBuildSqlTest (2.6.1 unchanged, keep quotes).zip

The command "dotnet "C:\Users\test\.nuget\packages\msbuild.sdk.sqlproj\2.6.1\Sdk\../tools/net8.0/DacpacTool.dll" build -o "obj\Debug\netstandard2.0\MsBuildSqlTest.dacpac" -n "MsBuildSqlTest" -v "1.0.0" -sv Sql150 -i "obj\Debug\netstandard2.0\MsBuildSqlTest.InputFiles.txt"  -sc TestValue0=""abcd"" -sc TestValue1="" &"" -sc TestValue2=""abc&xyz"" -sc TestValue3=""abc xyz"" -sc TestValue4=""abc%xyz"" -sc TestValue5=""abc<>xyz"" -sc TestValue6=""abc xyz"" -sc TestValue7=""abc xyz"" -sc TestValue8=""abc&xyz"" -sc TestValue99=""abc &xyz"" -sc TestValue100=""abcd""  -dp IncludeCompositeObjects=true --predeploy .\DeploymentScripts\Script.PreDeployment.sql --postdeploy .\DeploymentScripts\Script.PostDeployment.sql       " exited with code 255.

If we just remove the quotes, in this one the deployment fails quite early. Having removed the quotes from the csproj we can see it isn't putting any quotes into the command line which trips up the shell.

MsBuildSqlTest (2.6.1 remove quotes, keep all SQLCMD variables).zip

  Determining projects to restore...
  All projects are up-to-date for restore.
  Using target framework net8.0 to run DacpacTool
  MsBuildSqlTest -> C:\Users\test\source\repos\MsBuildSqlTest\bin\Debug\netstandard2.0\MsBuildSqlTest.dacpac
  > was unexpected at this time.
C:\Users\test\.nuget\packages\msbuild.sdk.sqlproj\2.6.1\Sdk\Sdk.targets(294,5): error MSB3073: The command "dotnet "C:\Users\test\.nuget\packages\msbuild.sdk.sqlproj\2.6.1\Sdk\../tools/net8.0/DacpacTool.dll" deploy -i "C:\Users\test\source\repos\MsBuildSqlTest\bin\Debug\netstandard2.0\MsBuildSqlTest.dacpac" -tsn "127.0.0.1" -tdn "MsBuildSqlTest" -tprt "1601" -tu "sa" -tp "sa_password!123456" -p IncludeCompositeObjects=true -p IncludeCompositeObjects=true -p IncludeComposi
teObjects=true -sc TestValue0=abcd -sc TestValue100=abcd -sc TestValue1= & -sc TestValue2=abc&xyz -sc TestValue8=abc&xyz -sc TestValue3=abc xyz -sc TestValue6=abc xyz -sc TestValue7=abc xyz -sc TestValue4=abc%xyz -sc TestValue5=abc<>xyz -sc TestValue99=abc &xyz  " exited with code 255. [C:\Users\test\source\repos\MsBuildSqlTest\MsBuildSqlTest.csproj]

If we comment out the especially problematic ones, we get further but deployment fails. You can see this in the command line at the bottom ("...exited with code 9009")

MsBuildSqlTest (2.6.1 remove quotes and problematic SQLCMD variables).zip

  Determining projects to restore...
  All projects are up-to-date for restore.
  Using target framework net8.0 to run DacpacTool
  Using package name MsBuildSqlTest and version 1.0.0
  Using SQL Server version Sql150
  Adding SqlCmd variable TestValue0 with default value abcd
  Adding SqlCmd variable TestValue3 with default value abc xyz
  Adding SqlCmd variable TestValue4 with default value abcxyz
  Adding SqlCmd variable TestValue6 with default value abc xyz
  Adding SqlCmd variable TestValue7 with default value abc xyz
  Adding SqlCmd variable TestValue8 with default value abc&xyz
  Adding SqlCmd variable TestValue99 with default value abc &xyz
  Adding SqlCmd variable TestValue100 with default value abcd
  Adding C:\Users\test\source\repos\MsBuildSqlTest\DeploymentScripts\Script.PostDeployment.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\DeploymentScripts\Script.PreDeployment.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\PostDeployTable.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\PreDeployTable.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\PostDeployTable.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\PreDeployTable.sql to the model
  Deleting existing file C:\Users\test\source\repos\MsBuildSqlTest\obj\Debug\netstandard2.0\MsBuildSqlTest.dacpac
  Writing model to C:\Users\test\source\repos\MsBuildSqlTest\obj\Debug\netstandard2.0\MsBuildSqlTest.dacpac
  Adding C:\Users\test\source\repos\MsBuildSqlTest\DeploymentScripts\Script.PreDeployment.sql to package
  Adding C:\Users\test\source\repos\MsBuildSqlTest\DeploymentScripts\Script.PostDeployment.sql to package
  MsBuildSqlTest -> C:\Users\test\source\repos\MsBuildSqlTest\bin\Debug\netstandard2.0\MsBuildSqlTest.dacpac
  'xyz' was not matched. Did you mean one of the following?
  -i
  -tu
  -tp
  -p
  -sc
  -e
  'xyz' was not matched. Did you mean one of the following?
  -i
  -tu
  -tp
  -p
  -sc
  -e
  'xyz' was not matched. Did you mean one of the following?
  -i
  -tu
  -tp
  -p
  -sc
  -e
  Unrecognized command or argument 'xyz'.
  Unrecognized command or argument 'xyz'.
  Unrecognized command or argument 'xyz'.

  Description:

  Usage:
    DacpacTool deploy [options]

  Options:
    -i, --input <input>                              Path to the .dacpac package to deploy
    -tsn, --targetServerName <targetServerName>      Name of the server to deploy the package to
    -tprt, --targetPort <targetPort>                 Port number to connect on (leave blank for default)
    -tdn, --targetDatabaseName <targetDatabaseName>  Name of the database to deploy the package to
    -tu, --targetUser <targetUser>                   Username used to connect to the target server, using SQL Server authentication
    -tp, --targetPassword <targetPassword>           Password used to connect to the target server, using SQL Server authentication
    -p, --property <property>                        Properties used to control the deployment
    -sc, --sqlcmdvar <sqlcmdvar>                     SqlCmdVariable(s) and their associated values, separated by an equals sign.
    -sff, --runScriptsFromReferences                 Whether to run pre- and postdeployment scripts from references
    -e, --encrypt                                    Encrypt the connection, defaults to false
    -?, -h, --help                                   Show help and usage information


  'xyz' is not recognized as an internal or external command,
  operable program or batch file.
  'xyz' is not recognized as an internal or external command,
  operable program or batch file.
C:\Users\test\.nuget\packages\msbuild.sdk.sqlproj\2.6.1\Sdk\Sdk.targets(294,5): error MSB3073: The command "dotnet "C:\Users\test\.nuget\packages\msbuild.sdk.sqlproj\2.6.1\Sdk\../tools/net8.0/DacpacTool.dll" deploy -i "C:\Users\test\source\repos\MsBuildSqlTest\bin\Debug\netstandard2.0\MsBuildSqlTest.dacpac" -tsn "127.0.0.1" -tdn "MsBuildSqlTest" -tprt "1601" -tu "sa" -tp "sa_password!123456" -p IncludeCompositeObjects=true -p IncludeCompositeObjects=true -p IncludeComposi
teObjects=true -sc TestValue0=abcd -sc TestValue100=abcd -sc TestValue3=abc xyz -sc TestValue6=abc xyz -sc TestValue7=abc xyz -sc TestValue4=abc%xyz -sc TestValue8=abc&xyz -sc TestValue99=abc &xyz  " exited with code 9009. [C:\Users\test\source\repos\MsBuildSqlTest\MsBuildSqlTest.csproj]
PS C:\Users\test\source\repos\MsBuildSqlTest>

Is the 2.6.1 change that automatically adds quotes (https://github.com/rr-wfm/MSBuild.Sdk.SqlProj/pull/459/files) incompatible with something else later in the pipeline that also should now add quotes? Since we can't add them ourselves anymore (#459) that is tripping things up?

@MSACATS
Copy link
Author

MSACATS commented Jan 30, 2025

Taking that last one (MsBuildSqlTest (2.6.1 remove quotes and problematic SQLCMD variables).zip) and moving to 2.7.0, we can see it's assigning SQLCMD once now with single quotes. But the command line is not wrapping the values in quotes (TestValue0=abcd -sc TestValue100=abcd -sc TestValue3=abc xyz -sc TestValue6=abc xyz -sc TestValue7=abc xyz -sc TestValue4=abc%xyz -sc TestValue8=abc&xyz -sc TestValue99=abc &xyz )

  Determining projects to restore...
  All projects are up-to-date for restore.
  Using target framework net8.0 to run DacpacTool
  Using package name MsBuildSqlTest and version 1.0.0
  Using SQL Server version Sql150
  Adding SqlCmd variable TestValue0 with default value abcd
  Adding SqlCmd variable TestValue3 with default value abc xyz
  Adding SqlCmd variable TestValue4 with default value abcxyz
  Adding SqlCmd variable TestValue6 with default value abc xyz
  Adding SqlCmd variable TestValue7 with default value abc xyz
  Adding SqlCmd variable TestValue8 with default value abc&xyz
  Adding SqlCmd variable TestValue99 with default value abc &xyz
  Adding SqlCmd variable TestValue100 with default value abcd
  Adding C:\Users\test\source\repos\MsBuildSqlTest\DeploymentScripts\Script.PostDeployment.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\DeploymentScripts\Script.PreDeployment.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\PostDeployTable.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\PreDeployTable.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\PostDeployTable.sql to the model
  Adding C:\Users\test\source\repos\MsBuildSqlTest\PreDeployTable.sql to the model
  Deleting existing file C:\Users\test\source\repos\MsBuildSqlTest\obj\Debug\netstandard2.0\MsBuildSqlTest.dacpac
  Writing model to C:\Users\test\source\repos\MsBuildSqlTest\obj\Debug\netstandard2.0\MsBuildSqlTest.dacpac
  Adding C:\Users\test\source\repos\MsBuildSqlTest\DeploymentScripts\Script.PreDeployment.sql to package
  Adding C:\Users\test\source\repos\MsBuildSqlTest\DeploymentScripts\Script.PostDeployment.sql to package
  MsBuildSqlTest -> C:\Users\test\source\repos\MsBuildSqlTest\bin\Debug\netstandard2.0\MsBuildSqlTest.dacpac
  Setting property IncludeCompositeObjects to value True
  Setting property IncludeCompositeObjects to value True
  Setting property IncludeCompositeObjects to value True
  Using encrypt: False
  Adding SQLCMD variable 'TestValue0' with value 'abcd'
  Adding SQLCMD variable 'TestValue100' with value 'abcd'
  Adding SQLCMD variable 'TestValue3' with value 'abc'
  Adding SQLCMD variable 'TestValue6' with value 'abc'
  Adding SQLCMD variable 'TestValue7' with value 'abc'
  Adding SQLCMD variable 'TestValue4' with value 'abcxyz'
  Adding SQLCMD variable 'TestValue8' with value 'abc'
  Using target server '127.0.0.1' on port 1601
  Using SQL Server Authentication
  Deploying package 'MsBuildSqlTest' version '1.0.0' to database 'MsBuildSqlTest'
  Initializing deployment (Start)
  Initializing deployment (Complete)
  Analyzing deployment plan (Start)
  Analyzing deployment plan (Complete)
  Updating database (Start)
  Running pre-deployment script
  Pre-deployment script complete
  Running post-deployment script
  Post-deployment script complete
  Update complete.
  Updating database (Complete)
  Successfully deployed database 'MsBuildSqlTest'
  'xyz' is not recognized as an internal or external command,
  operable program or batch file.
  'xyz' is not recognized as an internal or external command,
  operable program or batch file.
C:\Users\test\.nuget\packages\msbuild.sdk.sqlproj\2.7.0\Sdk\Sdk.targets(296,5): error MSB3073: The command "dotnet "C:\Users\test\.nuget\packages\msbuild.sdk.sqlproj\2.7.0\Sdk\../tools/net8.0/DacpacTool.dll" de
ploy -i "C:\Users\test\source\repos\MsBuildSqlTest\bin\Debug\netstandard2.0\MsBuildSqlTest.dacpac" -tsn "127.0.0.1" -tdn "MsBuildSqlTest" -tprt "1601" -tu "sa" -tp "sa_password!123456" -p IncludeCompositeObjects=
true -p IncludeCompositeObjects=true -p IncludeCompositeObjects=true -sc TestValue0=abcd -sc TestValue100=abcd -sc TestValue3=abc xyz -sc TestValue6=abc xyz -sc TestValue7=abc xyz -sc TestValue4=abc%xyz -sc TestVal
ue8=abc&xyz -sc TestValue99=abc &xyz  " exited with code 9009. [C:\Users\test\source\repos\MsBuildSqlTest\MsBuildSqlTest.csproj]

@ErikEJ
Copy link
Collaborator

ErikEJ commented Jan 30, 2025

Yes, there is a "dotnet build" bug which I think my PR will fix.

For publish, please use sqlpackage

@MSACATS
Copy link
Author

MSACATS commented Jan 30, 2025

Would it be possible to publish a beta package (or however that works), so we can test our workflow's scenarios?

@ErikEJ
Copy link
Collaborator

ErikEJ commented Jan 30, 2025

Sure, when the PR gets approved, we could possibly do that

@jmezach
Copy link
Member

jmezach commented Jan 31, 2025

We could publish the NuGet packages of the PR build so that @MSACATS can see if it resolves their issue

@ErikEJ ErikEJ self-assigned this Jan 31, 2025
@ErikEJ ErikEJ added the bug Something isn't working label Jan 31, 2025
@MSACATS
Copy link
Author

MSACATS commented Jan 31, 2025

For now we were able to work around it by massaging the value in the DefaultValue, so this is no longer an acute need if you don't want to clutter things up

@ErikEJ
Copy link
Collaborator

ErikEJ commented Jan 31, 2025

@jmezach Both recent bug fix PRs are merged now, should we do a preview or just go for 3.0.1 ?

@jmezach
Copy link
Member

jmezach commented Jan 31, 2025

I'm fine with releasing a 3.0.1. I'll get the ball rolling :).

@ErikEJ
Copy link
Collaborator

ErikEJ commented Jan 31, 2025

Wonderful, thanks - looking forward to see if our version update check works as expected!

@jmezach
Copy link
Member

jmezach commented Jan 31, 2025

Perhaps a 3.1.0 is more appropriate though. There are quite a bit of changes in there compared to the 3.0.0 release.

@ErikEJ
Copy link
Collaborator

ErikEJ commented Jan 31, 2025

Yes, including VS item template support - makes sense

@MSACATS
Copy link
Author

MSACATS commented Jan 31, 2025

Perhaps a 3.1.0 is more appropriate though. There are quite a bit of changes in there compared to the 3.0.0 release.

Similarly "2.6.1", in hindsight, was an understatement...

@ErikEJ
Copy link
Collaborator

ErikEJ commented Jan 31, 2025

@MSACATS You are the first person hit by this, so not sure I agree.

@ErikEJ
Copy link
Collaborator

ErikEJ commented Jan 31, 2025

@MSACATS 3.1.0 is out, could you do us a favor a try that?

@MSACATS
Copy link
Author

MSACATS commented Jan 31, 2025

@MSACATS You are the first person hit by this, so not sure I agree.

I'm going from the perspective of semantic versioning (https://semver.org/); changing behavior is not a n.n.X version bump. I'm sympathetic to the argument that whether things are quoted is undefined or not, but at the same time it would pretty clearly have implications if the value newly being wrapped (2.6.1) did have quotes in it.

Strictly speaking I'd say that no longer emitting the default value in this release is a behavior change (major version upgrade) but again, this is if we're using semantic versioning

@MSACATS 3.1.0 is out, could you do us a favor a try that?

We will try it. Actually our workaround (wrapping the values with quotes when using sqlpackage) did not work: the resulting SQLCMD value now has quotes in it, which is also wrong. We'll let you know the results

@MSACATS
Copy link
Author

MSACATS commented Feb 5, 2025

Preliminary testing looks good on our side.

@ErikEJ
Copy link
Collaborator

ErikEJ commented Feb 6, 2025

@MSACATS Thanks for the heads up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants