SELECT SCOPE_IDENTITY的执行方式不同

时间:2013-11-11 14:46:19

标签: sql sql-server-2012 ssms

SCOPE_IDENTITY()返回NULL

的另一个问题

情况如下:我有一台运行带有SQL Server 2012的Windows Server 2012R2的虚拟机。在我自己的机器上,我使用相同的SQL Server和Windows 8.1

在Management Studio中执行以下查询:

INSERT INTO [DB1].[Extract].[Log]([Package], [StartTime])
VALUES ('Bla', GETDATE())

SELECT SCOPE_IDENTITY() AS 'Identity';

返回在我的PC上插入的行的标识 BUT 在虚拟机中返回NULL(仍然插入行),因此SSIS包无法执行。

到底是怎么回事?它可能是对数据库的一些额外权限吗?

我不能错过“它适用于我的机器!” :)

2 个答案:

答案 0 :(得分:2)

如果插入的表没有SCOPE_IDENTITY()列,

IDENTITY将返回null - 因此值得在计算机上仔细检查您的架构,以确保它没有实际上是一个IDENTITY列。

答案 1 :(得分:0)

您是在服务器之间还原数据库还是仅通过查询或SSIS包将数据复制到一台服务器上的新表中?

相关问题