В powershell у меня есть скрипт, и каждый раз, когда он запускается, ему нужно увеличивать число в БД на единицу. Как только он достигает 9999, он сбрасывается обратно на 0001. У меня есть эта функция, разработанная в powershell, моя проблема заключается в том, что Invoke-SQLCMD продолжает удалять все ведущие 0
поэтому, если я хочу обновить значение БД до 0001
, оно обновляет его только до 1
Есть ли способ, чтобы SQLCMD продолжал вести 0?
Invoke-Sqlcmd -ServerInstance $dataSource -Database $database -Username $user -password $pass -Query "UPDATE DBO.TABLE_NAME SET sequence_no = $newFileNum"
"{0:0000}" -f 1
, что дает вывод:0001
- person boxdog   schedule 17.08.2018Invoke-SqlCmd
совершенно невиновен. Если$newFileNum
содержит правильную строку (0001
), вам нужно передать ее как строку (sequence_no = '$newFileNum'
). В противном случае вы отправитеsequence_no = 0001
на SQL Server, где SQL Server просто проанализирует0001
обратно вINT
. Или вы можете вообще избежать замены какInvoke-Sqlcmd
, так и строки и использовать правильные параметры. - person Jeroen Mostert   schedule 17.08.2018