#sql #sql-server #powershell
#sql #sql-сервер #powershell
Вопрос:
Поэтому у меня есть этот запрос
"INSERT INTO tblAssetRelations (ParentAssetID, ChildAssetID, Type) VALUES ( (SELECT tblAssets.AssetID FROM tblAssets WHERE tblAssets.AssetName = $field2), (SELECT tblAssets.AssetID FROM tblAssets WHERE tblAssets.AssetName = $field1), 12 );"
как я могу отменить/прервать инструкцию INSERT, если одна из инструкций SELECT в ЗНАЧЕНИЯХ не возвращает значения(null)
ps: $field1 и $field2 являются переменными для сценария powershell
Ответ №1:
Вы можете попробовать использовать INSERT INTO ... SELECT
оператор:
INSERT INTO tblAssetRelations (ParentAssetID, ChildAssetID, Type) SELECT a, b, c FROM ( SELECT (SELECT tblAssets.AssetID FROM tblAssets WHERE tblAssets.AssetName = $field2) AS a, (SELECT tblAssets.AssetID FROM tblAssets WHERE tblAssets.AssetName = $field1) AS b, 12 AS c ) WHERE a IS NOT NULL AND b IS NOT NULL
Тогда вы бы прервали INSERT
с WHERE a IS NOT NULL AND b IS NOT NULL