CREATE TABLE [dbo].[Table_A](
[ID] [int] IDENTITY(1,1) NOT NULL,
[AREA] [varchar](50) NOT NULL,
[Year] [int] NOT NULL,
[Month] [int] NOT NULL,
[Factor] [float] NULL,
[Net] [float] NULL,
[Path] [varchar](255) NULL,
[Created] [smalldatetime] NULL,
[CreatedBy] [varchar](50) NOT NULL,
[LastModified] [varchar](50) NOT NULL,
[LastModifiedBy] [varchar](50) NOT NULL)
)
ALTER TABLE [dbo].[Table_A] ADD DEFAULT ((1.0)) FOR [Factor]
GO
ALTER TABLE [dbo].[Table_A] ADD DEFAULT (sysdatetime()) FOR [Created]
GO
ALTER TABLE [dbo].[Table_A] ADD DEFAULT (suser_name()) FOR [CreatedBy]
GO
ALTER TABLE [dbo].[Table_A] ADD DEFAULT (sysdatetime()) FOR [LastModified]
GO
ALTER TABLE [dbo].[Table_A] ADD DEFAULT (suser_name()) FOR [LastModifiedBy]
GO
我需要使用cursor填充表格 cursor应该从中获取数据 声明Cur_AREA光标 对于
Select Distinct Media From DIM_AREA
注意:DIM_AREA包括得克萨斯州,达拉斯,芝加哥和纽瓦克。 光标应填写1990年至2020年的数据
我的游标代码是::
Declare @Temp_Year int
Select @Temp_Year = MAX(Year)
While @Temp_Year < DATEPART(YEAR, GETDATE())
Begin
Declare Cur_Media Cursor
For
Select Distinct Media From DIM_AREA
Order by Media
open Cur_Media
Fetch Next From Cur_Media
While @@FETCH_STATUS = 0
Begin
Declare @Temp_Month int
Set @Temp_Month = 1
While @Temp_Month <= 12
Begin
Insert into Table_A (Media, Year, month)
Set @Temp_Month = @Temp_Month + 1
Set @Temp_Year = @Temp_Year + 1
end
end
Close Cur_Media
Deallocate Cur_Media
但我的光标无法正常工作:(
答案 0 :(得分:0)
你可能在这里有其他问题,我认为你的问题没有充实,但你说:
Insert into Table_A (Media, Year, month)
但是你没有选择要插入的东西。
使用:
Insert into Table_A (Media, Year, month)
VALUES('','','')
或:
Insert into Table_A (Media, Year, month)
SELECT '','',''
FROM YourTable
用您要插入的任何内容替换空引号。