ALTER PROCEDURE [dbo].[NgListInfoDel] @StartDate smalldatetime , --开始时间 @EndDate smalldatetime --结束时间 AS BEGIN IF EXISTS(SELECT * FROM tempdb.dbo.sysobjects WHERE NAME = 'NgListInfoDel') BEGIN DROP TABLE tempdb.dbo.NgListInfoDel END declare @sql varchar(2000) CREATE TABLE tempdb.[dbo].[NgListInfoDel]( [Num] [int] IDENTITY(1,1) NOT NULL, [BssID] [tinyint] NULL, [BtsID] [int] NOT NULL, [CellID] [tinyint] NOT NULL, [CarrierID] [tinyint] NOT NULL, [BtsType] [nvarchar](100) NULL, [CI] [int] NULL, [CellName] [nvarchar](100) NULL, [TargetCI] [int] NOT NULL, [TargetCellName] [nvarchar](100) NULL, [TargetPN] [int] NULL, [Dist] [decimal](10, 2) NULL, [HoSNum] [int] NULL, [HoFNum] [int] NULL, [HoFRate] [decimal](10, 3) NULL, [HoTotNum] [int] NULL, [HoRate] [decimal](10, 3) NULL, [NgNum] [int] NULL, [Locked] [tinyint] NULL ) ON [PRIMARY] --ALTER TABLE tempdb.dbo.NgListInfoDel ADD NUM INT IDENTITY(1,1) --================================================================================================= --插入现网配置的载波邻区列表 --================================================================================================= INSERT INTO tempdb.dbo.NgListInfoDel(BssID,BtsID,CellID,CarrierID,TargetCI,TargetPN,Locked) SELECT A.BssID,A.SYSTEM,A.CellID,A.CarrierID,A.CI,A.PILOT_PN,A.Locked_B FROM WY_CNO_CMP_DB.DBO.TRX_NGLISTINFO AS A --================================================================================================= --删除重复数据 --================================================================================================= set @sql = 'DELETE FROM tempdb.dbo.NgListInfoDel WHERE Num Not IN(SELECT max(B.Num) FROM tempdb.dbo.NgListInfoDel AS B GROUP BY B.BSSID,B.BTSID,B.CellId,B.CarrierId,B.TargetCI,B.TargetPN) ' EXEC(@sql) --================================================================================================= --删除[Num] --================================================================================================= ALTER TABLE tempdb.dbo.NgListInfoDel DROP COLUMN Num END
ALTER PROCEDURE [dbo].[NgListInfoDel] @StartDate smalldatetime , --开始时间 @EndDate smalldatetime --结束时间 AS BEGIN IF EXISTS(SELECT * FROM tempdb.dbo.sysobjects WHERE NAME = #taoistong) BEGIN DROP TABLE #taoistong END CREATE TABLE #taoistong( [Num] [int] IDENTITY(1,1) NOT NULL, [BssID] [tinyint] NULL, [BtsID] [int] NOT NULL, [CellID] [tinyint] NOT NULL, [CarrierID] [tinyint] NOT NULL, [BtsType] [nvarchar](100) NULL, [CI] [int] NULL, [CellName] [nvarchar](100) NULL, [TargetCI] [int] NOT NULL, [TargetCellName] [nvarchar](100) NULL, [TargetPN] [int] NULL, [Dist] [decimal](10, 2) NULL, [HoSNum] [int] NULL, [HoFNum] [int] NULL, [HoFRate] [decimal](10, 3) NULL, [HoTotNum] [int] NULL, [HoRate] [decimal](10, 3) NULL, [NgNum] [int] NULL, [Locked] [tinyint] NULL ) ON [PRIMARY] --ALTER TABLE #taoistong ADD NUM INT IDENTITY(1,1) --================================================================================================= --插入现网配置的载波邻区列表 --================================================================================================= INSERT INTO #taoistong(BssID,BtsID,CellID,CarrierID,TargetCI,TargetPN,Locked) SELECT A.BssID,A.SYSTEM,A.CellID,A.CarrierID,A.CI,A.PILOT_PN,A.Locked_B FROM WY_CNO_CMP_DB.DBO.TRX_NGLISTINFO AS A --================================================================================================= --删除重复数据 --================================================================================================= DELETE FROM #taoistong WHERE Num Not IN(SELECT max(B.Num) FROM #taoistong AS B GROUP BY B.BSSID,B.BTSID,B.CellId,B.CarrierId,B.TargetCI,B.TargetPN) --================================================================================================= --删除[Num] --================================================================================================= ALTER TABLE #taoistong DROP COLUMN Num END 你的算法逻辑不对
消息 207,级别 16,状态 1,过程 NgListInfoDel,第 123 行
列名 'Num' 无效。
消息 207,级别 16,状态 1,过程 NgListInfoDel,第 123 行
列名 'Num' 无效。
在出错的行数之前,你已经把num列删了?
ALTER PROCEDURE [dbo].[NgListInfoDel]
@StartDate smalldatetime , --开始时间
@EndDate smalldatetime --结束时间
AS
BEGIN
IF EXISTS(SELECT * FROM tempdb.dbo.sysobjects WHERE NAME = 'NgListInfoDel')
BEGIN
DROP TABLE tempdb.dbo.NgListInfoDel
END
declare @sql varchar(2000)
CREATE TABLE tempdb.[dbo].[NgListInfoDel](
[Num] [int] IDENTITY(1,1) NOT NULL,
[BssID] [tinyint] NULL,
[BtsID] [int] NOT NULL,
[CellID] [tinyint] NOT NULL,
[CarrierID] [tinyint] NOT NULL,
[BtsType] [nvarchar](100) NULL,
[CI] [int] NULL,
[CellName] [nvarchar](100) NULL,
[TargetCI] [int] NOT NULL,
[TargetCellName] [nvarchar](100) NULL,
[TargetPN] [int] NULL,
[Dist] [decimal](10, 2) NULL,
[HoSNum] [int] NULL,
[HoFNum] [int] NULL,
[HoFRate] [decimal](10, 3) NULL,
[HoTotNum] [int] NULL,
[HoRate] [decimal](10, 3) NULL,
[NgNum] [int] NULL,
[Locked] [tinyint] NULL
) ON [PRIMARY] --ALTER TABLE tempdb.dbo.NgListInfoDel ADD NUM INT IDENTITY(1,1)
--=================================================================================================
--插入现网配置的载波邻区列表
--=================================================================================================
INSERT INTO tempdb.dbo.NgListInfoDel(BssID,BtsID,CellID,CarrierID,TargetCI,TargetPN,Locked)
SELECT A.BssID,A.SYSTEM,A.CellID,A.CarrierID,A.CI,A.PILOT_PN,A.Locked_B
FROM WY_CNO_CMP_DB.DBO.TRX_NGLISTINFO AS A --=================================================================================================
--删除重复数据
--=================================================================================================
set @sql = 'DELETE FROM tempdb.dbo.NgListInfoDel WHERE Num Not IN(SELECT max(B.Num) FROM tempdb.dbo.NgListInfoDel AS B
GROUP BY B.BSSID,B.BTSID,B.CellId,B.CarrierId,B.TargetCI,B.TargetPN) '
EXEC(@sql)
--=================================================================================================
--删除[Num]
--=================================================================================================
ALTER TABLE tempdb.dbo.NgListInfoDel DROP COLUMN Num END
ALTER PROCEDURE [dbo].[NgListInfoDel]
@StartDate smalldatetime , --开始时间
@EndDate smalldatetime --结束时间
AS
BEGIN
IF EXISTS(SELECT *
FROM tempdb.dbo.sysobjects
WHERE NAME = #taoistong)
BEGIN
DROP TABLE #taoistong
END CREATE TABLE #taoistong(
[Num] [int] IDENTITY(1,1) NOT NULL,
[BssID] [tinyint] NULL,
[BtsID] [int] NOT NULL,
[CellID] [tinyint] NOT NULL,
[CarrierID] [tinyint] NOT NULL,
[BtsType] [nvarchar](100) NULL,
[CI] [int] NULL,
[CellName] [nvarchar](100) NULL,
[TargetCI] [int] NOT NULL,
[TargetCellName] [nvarchar](100) NULL,
[TargetPN] [int] NULL,
[Dist] [decimal](10, 2) NULL,
[HoSNum] [int] NULL,
[HoFNum] [int] NULL,
[HoFRate] [decimal](10, 3) NULL,
[HoTotNum] [int] NULL,
[HoRate] [decimal](10, 3) NULL,
[NgNum] [int] NULL,
[Locked] [tinyint] NULL
) ON [PRIMARY] --ALTER TABLE #taoistong ADD NUM INT IDENTITY(1,1)
--=================================================================================================
--插入现网配置的载波邻区列表
--=================================================================================================
INSERT INTO #taoistong(BssID,BtsID,CellID,CarrierID,TargetCI,TargetPN,Locked)
SELECT A.BssID,A.SYSTEM,A.CellID,A.CarrierID,A.CI,A.PILOT_PN,A.Locked_B
FROM WY_CNO_CMP_DB.DBO.TRX_NGLISTINFO AS A --=================================================================================================
--删除重复数据
--=================================================================================================
DELETE FROM #taoistong
WHERE Num Not IN(SELECT max(B.Num) FROM #taoistong AS B
GROUP BY B.BSSID,B.BTSID,B.CellId,B.CarrierId,B.TargetCI,B.TargetPN)
--=================================================================================================
--删除[Num]
--=================================================================================================
ALTER TABLE #taoistong DROP COLUMN Num END
你的算法逻辑不对