SCOPE_IDENTITY()返回NULL而不是期望值

时间:2019-11-19 22:01:58

标签: python sql-server scope-identity

使用Python和SQL Server,我将一行插入表中。插入记录后,我正在使用SCOPE_IDENTITY()来获取插入记录的最新ID。该函数没有收到期望的ID,而是返回NULL。请任何人帮我获取插入记录的最新ID。

Python代码:

InsertFileQuery = """
BEGIN
   BEGIN
    INSERT INTO [MYDB].[dbo].[TABLE]([A] ,[B],[C] ,[D] ,[E] ,[F])
                  VALUES (?,?,?,?,?,?,?)
   END
END
                 """

values = (A, B, C, D, E, F)
cursor = conn.cursor()
cursor.execute(InsertFileQuery, values)

cursor.execute("select SCOPE_IDENTITY()")
row = cursor.fetchone()
seed_id = row[0]
print(row)       #Null Value
print(seed_id)   #Null Value

1 个答案:

答案 0 :(得分:0)

现在没有任何地方可以对其进行测试,但是在我看来这应该可以工作:

InsertFileQuery = """
    INSERT INTO [MYDB].[dbo].[TABLE]([A] ,[B],[C] ,[D] ,[E] ,[F])
                  VALUES (?,?,?,?,?,?,?);
    SELECT SCOPE_IDENTITY();
                 """

values = (A, B, C, D, E, F)
cursor = conn.cursor()
cursor.execute(InsertFileQuery, values)

row = cursor.fetchone()
seed_id = row[0]
print(row)       #Null Value
print(seed_id)   #Null Value