Sql server 2008 r2 不确定如何将此特定插入到sql表中

Sql server 2008 r2 不确定如何将此特定插入到sql表中,sql-server-2008-r2,Sql Server 2008 R2,我有这个剧本: SELECT 'pro' as descript, COUNT(*) as cnt FROM Trade.TradesMen where TradesManAccountType_Value = 2 AND HasTradeListing = 1 UNION ALL SELECT 'std' as descript, COUNT(*) as cnt FROM Trade.TradesMen tm INNER JOIN Membership.Members m ON m.

我有这个剧本:

 SELECT 'pro' as descript, COUNT(*) as cnt FROM Trade.TradesMen where TradesManAccountType_Value = 2 AND HasTradeListing = 1
 UNION ALL

 SELECT 'std' as descript, COUNT(*) as cnt FROM Trade.TradesMen tm
 INNER JOIN Membership.Members m ON m.MemberId = tm.MemberId
 INNER JOIN aspnet_Membership am ON am.UserId = m.AspNetUserId
 WHERE tm.TradesManAccountType_Value = 1 AND tm.HasTradeListing = 1 AND am.IsApproved = 1

 UNION ALL

 SELECT 'listed' as descript, COUNT(*) as cnt FROM Trade.TradesMen where HasTradeListing = 1

 UNION ALL

 SELECT 'all' as descript, COUNT(*) as cnt FROM Trade.TradesMen
 insert into Admin.VersionHistory values(4,cnt,CURRENT_TIMESTAMP) //is NOT correct
这将产生:

 1     pro          32549
 2     std          13096
 3     listed   230547
 4     all          231638
我想在我的表中添加上面的行:Admin.VersionHistory,它的列VersionHistory类型为int auto increment,是ID,Version类型为varchar(50)和数据时间戳

谢谢

(使用OP的新信息更新)
从我的头顶上看,它看起来像这样

INSERT INTO Admin.VersionHistory (Version, NumberOf, DateAndTime)
SELECT descript, CAST(cnt AS VARCHAR), SYSDATE
FROM
(
SELECT 'pro' as descript, COUNT(*) as cnt FROM Trade.TradesMen where TradesManAccountType_Value = 2 AND HasTradeListing = 1

UNION ALL

SELECT 'std' as descript, COUNT(*) as cnt FROM Trade.TradesMen tm
INNER JOIN Membership.Members m ON m.MemberId = tm.MemberId
INNER JOIN aspnet_Membership am ON am.UserId = m.AspNetUserId
WHERE tm.TradesManAccountType_Value = 1 AND tm.HasTradeListing = 1 AND am.IsApproved = 1

UNION ALL

SELECT 'listed' as descript, COUNT(*) as cnt FROM Trade.TradesMen where HasTradeListing = 1

UNION ALL

SELECT 'all' as descript, COUNT(*) as cnt FROM Trade.TradesMen
) ;
这是假设数据库自动为
VersionHistoryId
列设置种子。每次插入时,将自动插入一个ID号

但不确定使用
CURRENT\u TIMESTAMP
列想要实现什么。我把
SYSDATE
作为时间戳


NumberOf
列包含计数数据。按您认为合适的方式命名。

谢谢,但我遇到一个错误:只有在使用列列表且启用identity_INSERT时,才能为表“Admin.VersionHistory”中的identity列指定显式值。我如何解决这个问题?当创建表时,这个选项是否应该启用?我无法回答这个问题,因为我显然不知道Admin.VersionHistory表是什么样子。你的桌子上有PK吗(你显然有)?它叫什么?是“自动编号”吗?等请将此信息添加到您的原始问题中,以便我们可以帮助您。谢谢,为什么我在SELECT descript,CAST(cnt AS VARCHAR),SYSDATE的descript列中得到无效的列名?我必须在那里使用什么列名?对不起,我对这一切都很陌生,还不完全理解:)嗯。。。老实说,我不知道。
UNION
s的结果集只包含descript和cnt列。。。您确定错误与描述符列有关吗?顺便说一句,不要忘记将答案标记为已接受。检查目标表上的列。如果找不到线索,请将
VersionHistory
表的创建脚本粘贴到OP中。如果您不帮助我们,我们将无法帮助您;)你的问题现在有点乱了。首先,不能将“all”用作表的ID列。请使用正确的ID。看起来Admin.VersionHistory表中缺少列
说明
。您试图插入到
版本
(另一个表中的计数)的内容没有任何意义。也许你应该简化你的问题,准确地解释你想要完成什么。最重要的是:
insert into Admin.VersionHistory 
SELECT 'all', COUNT(*),current_timestamp FROM Trade.TradesMen