我第一次使用我的标量变量@ZeroVATRateId,将其插入TaxRates,它可以工作,但是在下一行,当我插入TaxBreakdown时,它失败了:
“必须声明标量变量”@ZeroVATRateId“。
到底是怎么回事?
DECLARE @ZeroVATRateId int;
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[VatRates]') AND type in (N'U'))
BEGIN
SET @ZeroVATRateId = 2;
END
ELSE
BEGIN
SET @ZeroVATRateId = COALESCE((SELECT TOP 1 Id FROM [VatRates] WHERE VatBandCode = 'Zero'), 2);
END
SET IDENTITY_INSERT [dbo].[TaxRates] ON;
INSERT INTO [dbo].[TaxRates]([Id], [TaxBandCode], [Rate], [StartDate], [EndDate], [Country], [County], [City])
SELECT @ZeroVATRateId, N'ZERORATE', 1, '1900 00:00:00.000 +00:00', '99990101 00:00:00.000 +00:00', NULL, NULL, NULL
GO
SET IDENTITY_INSERT [dbo].[TaxRates] OFF;
INSERT INTO [dbo].[TaxBreakdown]([Id], [TaxRateId], [Rate], [Name], [Priority], [ApplyOnSubtotal])
SELECT @ZeroVATRateId, @ZeroVATRateId, 1, N'ZERORATE', 1, 0
GO
答案 0 :(得分:4)
删除GO
语句以继续使用您的变量。