一个表的数据插入另外一个表中,有一个不能为空且不能重复的int列该怎么生成

一个表的数据插入另外一个表中,有一个不能为空且不能重复的int列该如何生成
我有一个表,里面有数据了
其中有一个字段BatchID,类型为int,且不能为空与重复(非自增列)

现在我要把另外一个表的数据批量插入到这个表中,插入的时候该如何去重新构造这个BatchID呢?
我现在能想到的就是用存储过程,然后用游标循环一行一行的写入
不知道有没有其它方法?
下面是生成测试数据的SQL语句
就是把Table_2中的数据插入到Table_1中


CREATE TABLE [dbo].[Table_2](
[id] [int] IDENTITY(1,1) NOT NULL,
[BatchName] [varchar](50) NULL
) ON [PRIMARY]

GO

INSERT [dbo].[Table_2] ([BatchName]) VALUES ('20140301')
INSERT [dbo].[Table_2] ([BatchName]) VALUES ('20140302')
INSERT [dbo].[Table_2] ([BatchName]) VALUES ('20140303')

GO
CREATE TABLE [dbo].[Table_1](
[id] [int] IDENTITY(1,1) NOT NULL,
[BatchID] [int] NOT NULL,
[BatchName] [varchar](50) NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
[BatchID] ASC
) ON [PRIMARY]
) ON [PRIMARY]
GO

INSERT [dbo].[Table_1] ([BatchID], [BatchName]) VALUES (1, '20140101')
INSERT [dbo].[Table_1] ([BatchID], [BatchName]) VALUES (2, '20140102')
INSERT [dbo].[Table_1] ([BatchID], [BatchName]) VALUES (5, '20140103')
INSERT [dbo].[Table_1] ([BatchID], [BatchName]) VALUES (8, '20140201')


------解决方案--------------------
建个唯一约束
------解决方案--------------------
表table2的数据,插入表table1中,需要构造表table1的batchid。
这本身不就是一行行地写入么……

在表table2中,先构造好一个数字,作为表table1中的batchid。
再执行插入。

好像可行……?