我有INVOICE
TABLE
我想通过不指定列名来插入值
使用SQL Server
,我尝试了这个,但它没有用。请帮助
INSERT INTO INVOICE
VALUES( 1,1,KEYBOARD,1,15,5,75)
答案 0 :(得分:26)
只要INSERT语句中有正确的列数,并且只要除KEYBOARD之外的所有值都是某种数字数据类型,并且只要您具有合适的权限,这应该有效。
INSERT INTO INVOICE VALUES( 1,1,'KEYBOARD',1,15,5,75);
SQL需要围绕文本值使用单引号。
但不使用列名称不是一个好习惯。人们改变表中列的顺序并不是闻所未闻。改变列的顺序也不是一个好习惯,但有些人仍然坚持这样做。
如果某人这样做,并交换表中的第5列和第7列,那么INSERT语句仍然会成功 - 这些列都是数字 - 但INSERT会搞砸你的数据。
答案 1 :(得分:9)
你为什么要这样做?不指定列名是错误的编码实践。
但是,在您的情况下,keyboard
需要用单引号括起来:
INSERT INTO INVOICE VALUES( 1,1, 'KEYBOARD',1,15,5,75)
如果您只是不想键入列名,可以在SQL Server Management Studio中轻松获取它们。打开“对象浏览器”,打开数据库,然后选择“表格”。选择Invoice
表。其中一个选项是“列”。
只需单击“列”名称(无需打开)并将其拖到查询窗口中即可。它将插入列列表。
答案 2 :(得分:7)
是的,您可以直接在表中插入值,如下所示:
insert into `schema`.`tablename` values(val1,val2,val3);
答案 3 :(得分:3)
INSERT INTO INVOICE VALUES( 1,1,'KEYBOARD',1,15,5,75);
你忘记在键盘中包含单引号,在sql中需要单引号文本