I have written a procedure that generates queries and executes them. The problem is that I have 2 insert queries that are generated that insert into the same table and are basically the same except I that am using a different view for each.
The first insert query, which is the Computers query works fine but the second, which is the Printers query is hanging for some reason.
I have determined that if I run the Printers query as a select query it returns the expected results and I run it as an insert query with the “DuplicateAssetNo is null” commented out it updates the table as expected.
There are no transaction issues and the order that I run them makes no difference
Any ideas would be greatly welcome.
Thanks
1. Computer Query that works
insert into tblAssetDataSourceIdentifier(
ADSI_A_Id, ADSI_AssetIdentifier, ADSI_Datasource, ADSI_ValidateDT)
select A_Id, AIR2_Id, 'AIR', 'Feb 1 2005 9:18AM'
from tblAsset
left join tblAssetDataSourceIdentifier on ADSI_A_Id = A_Id
inner join AIR.dbo.vZZComputer on A_AssetNo = AssetNo
left join (
select dbo.fUnknown(AssetNo) as DuplicateAssetNo,
count(dbo.fUnknown(AssetNo)) as DuplicateAssetNoCount
from AIR.dbo.vZZComputer
where dbo.fUnknown(AssetNo) <> 'Unknown'
group by dbo.fUnknown(AssetNo)
having count(dbo.fUnknown(AssetNo)) > 1) as DuplicateAssetNo
on DuplicateAssetNo = AssetNo
left join (
select dbo.fUnknown(SerialNo) as DuplicateSerialNo,
count(dbo.fUnknown(SerialNo)) as DuplicateSerialNoCount
from AIR.dbo.vZZComputer
where dbo.fUnknown(SerialNo) <> 'Unknown'
group by dbo.fUnknown(SerialNo)
having count(dbo.fUnknown(SerialNo)) > 1) as DuplicateSerialNo
on DuplicateSerialNo = SerialNo
where ADSI_Id is null and dbo.fUnknown(AssetNo) <> 'Unknown' and
DuplicateAssetNo is null and DuplicateSerialNo is null
2. Printer Query that hangs
insert into tblAssetDataSourceIdentifier(
ADSI_A_Id, ADSI_AssetIdentifier, ADSI_Datasource, ADSI_ValidateDT)
select A_Id, AIR2_Id, 'AIR', 'Feb 1 2005 9:19AM'
from tblAsset
left join tblAssetDataSourceIdentifier on ADSI_A_Id = A_Id
inner join AIR.dbo.vZZPrinters on A_AssetNo = AssetNo
left join (
select dbo.fUnknown(AssetNo) as DuplicateAssetNo,
count(dbo.fUnknown(AssetNo)) as DuplicateAssetNoCount
from AIR.dbo.vZZPrinters
where dbo.fUnknown(AssetNo) <> 'Unknown'
group by dbo.fUnknown(AssetNo)
having count(dbo.fUnknown(AssetNo)) > 1) as DuplicateAssetNo
on DuplicateAssetNo = AssetNo
left join (
select dbo.fUnknown(SerialNo) as DuplicateSerialNo,
count(dbo.fUnknown(SerialNo)) as DuplicateSerialNoCount
from AIR.dbo.vZZPrinters
where dbo.fUnknown(SerialNo) <> 'Unknown'
group by dbo.fUnknown(SerialNo)
having count(dbo.fUnknown(SerialNo)) > 1) as DuplicateSerialNo
on DuplicateSerialNo = SerialNo
where ADSI_Id is null and dbo.fUnknown(AssetNo) <> 'Unknown' and
DuplicateAssetNo is null and DuplicateSerialNo is null
The first insert query, which is the Computers query works fine but the second, which is the Printers query is hanging for some reason.
I have determined that if I run the Printers query as a select query it returns the expected results and I run it as an insert query with the “DuplicateAssetNo is null” commented out it updates the table as expected.
There are no transaction issues and the order that I run them makes no difference
Any ideas would be greatly welcome.
Thanks
1. Computer Query that works
insert into tblAssetDataSourceIdentifier(
ADSI_A_Id, ADSI_AssetIdentifier, ADSI_Datasource, ADSI_ValidateDT)
select A_Id, AIR2_Id, 'AIR', 'Feb 1 2005 9:18AM'
from tblAsset
left join tblAssetDataSourceIdentifier on ADSI_A_Id = A_Id
inner join AIR.dbo.vZZComputer on A_AssetNo = AssetNo
left join (
select dbo.fUnknown(AssetNo) as DuplicateAssetNo,
count(dbo.fUnknown(AssetNo)) as DuplicateAssetNoCount
from AIR.dbo.vZZComputer
where dbo.fUnknown(AssetNo) <> 'Unknown'
group by dbo.fUnknown(AssetNo)
having count(dbo.fUnknown(AssetNo)) > 1) as DuplicateAssetNo
on DuplicateAssetNo = AssetNo
left join (
select dbo.fUnknown(SerialNo) as DuplicateSerialNo,
count(dbo.fUnknown(SerialNo)) as DuplicateSerialNoCount
from AIR.dbo.vZZComputer
where dbo.fUnknown(SerialNo) <> 'Unknown'
group by dbo.fUnknown(SerialNo)
having count(dbo.fUnknown(SerialNo)) > 1) as DuplicateSerialNo
on DuplicateSerialNo = SerialNo
where ADSI_Id is null and dbo.fUnknown(AssetNo) <> 'Unknown' and
DuplicateAssetNo is null and DuplicateSerialNo is null
2. Printer Query that hangs
insert into tblAssetDataSourceIdentifier(
ADSI_A_Id, ADSI_AssetIdentifier, ADSI_Datasource, ADSI_ValidateDT)
select A_Id, AIR2_Id, 'AIR', 'Feb 1 2005 9:19AM'
from tblAsset
left join tblAssetDataSourceIdentifier on ADSI_A_Id = A_Id
inner join AIR.dbo.vZZPrinters on A_AssetNo = AssetNo
left join (
select dbo.fUnknown(AssetNo) as DuplicateAssetNo,
count(dbo.fUnknown(AssetNo)) as DuplicateAssetNoCount
from AIR.dbo.vZZPrinters
where dbo.fUnknown(AssetNo) <> 'Unknown'
group by dbo.fUnknown(AssetNo)
having count(dbo.fUnknown(AssetNo)) > 1) as DuplicateAssetNo
on DuplicateAssetNo = AssetNo
left join (
select dbo.fUnknown(SerialNo) as DuplicateSerialNo,
count(dbo.fUnknown(SerialNo)) as DuplicateSerialNoCount
from AIR.dbo.vZZPrinters
where dbo.fUnknown(SerialNo) <> 'Unknown'
group by dbo.fUnknown(SerialNo)
having count(dbo.fUnknown(SerialNo)) > 1) as DuplicateSerialNo
on DuplicateSerialNo = SerialNo
where ADSI_Id is null and dbo.fUnknown(AssetNo) <> 'Unknown' and
DuplicateAssetNo is null and DuplicateSerialNo is null