我创建了一个表,将数据从csv文件导入SQL Server表。该表包含大约6000行,这些行都是浮动的。我正在尝试使用INSERT
插入新行(我正在使用Python / Spyder和SQL Server Management Studio),它确实将行插入,但不是在表格底部,而是在中间。我不知道为什么要这么做。这是我正在使用的代码:
def create (conn):
print ("Create")
cursor = conn.cursor()
cursor.execute ("insert into PricesTest
(Price1,Price2,Price3,Price4,Price5,Price6,Price7,Price8,Price9,Price10,Price
11,Price12) values (?,?,?,?,?,?,?,?,?,?,?,?);",
(46,44,44,44,44,44,44,44,44,44,44,44))
conn.commit()
read (conn)
知道为什么会这样吗?我应该在代码中添加哪些内容,以“强制”将该行添加到表的底部?非常感谢。
答案 0 :(得分:1)
我设法按照这里发布的不同建议进行了整理。基本上,从概念上讲,我认为MS SQL中的表具有顺序是错误的。我现在使用ORDER BY日期(我将日期添加为第一列)来处理表中的数据,并且运行良好。非常感谢大家的帮助!
答案 1 :(得分:0)
事实是默认情况下,新行的插入没有任何顺序,因为服务器没有规则来对新插入的行进行排序(没有定义主键)。您应该在导入数据之前创建一个Identity列(即使现在也可以):
Id Int IDENTITY(1,1) primary key
这将确保所有行都将添加到表的末尾。
有关您可以在w3school上使用的数据类型的更多信息:https://www.w3schools.com/sql/sql_datatypes.asp