到目前为止,我已在我的脚本文件中手动启用和禁用这些字段:
-- PHI enabled
SELECT MRN
--,HASHBYTES('SHA2_256',MRN) MRN_HASH
...
GO
-- PHI disabled
SELECT -- MRN
,HASHBYTES('SHA2_256',MRN) MRN_HASH
...
GO
有没有办法动态地执行此操作?
--
-- disable this variable when running `SQLCMD` from command line
-- PS> sqlcmd -E -S server -d database -i .\script.sql -v hide_phi=1
--
:setvar hide_phi 0
:out c:\users\x\desktop\patients.csv
SELECT
<if $(hide_phi)=0 then hide MRN>
<if $(hide_phi)=1 then hide MRN_HASH>
...
GO
答案 0 :(得分:0)
SQLCMD接受变量。您只需将变量传递到.SQL文件,然后在文件中对变量值进行条件检查。您可以使用CASE语句检查变量的值,并返回适当的值。
伪样本查询:
select "MRN" = case
when '$(hide_phi)' = '1' then HASHBYTES('SHA2_256', MRN)
else MRN
END
...
GO
或者可能是这样:
select "MRN" = case '$(hide_phi)'
when '1' then HASHBYTES('SHA2_256', MRN)
else MRN
END