什么被插入这张桌子?

时间:2015-07-30 21:04:40

标签: sql-server tsql

我对SQL Server和T-SQL不太熟悉,所以我试图了解插入到此表中的内容。我认为只是插入了字段或列名,因为没有FROM语句,但语法看起来很奇怪。显然,一次插入是一个变量。前面的0是什么?我只处理过MySQL。

INSERT INTO EXAMPLETABLE 
   SELECT 
       @RANDOMEVARIABLE IDTYPE, 0 foofoofoo, 0 foofoo, 0 foo   

1 个答案:

答案 0 :(得分:1)

将插入一条记录。 @RANDOMEVARIABLE的值将存储在第一列中,0将存储在接下来的3列中。由于所有值都是常量(和一个局部变量),因此不需要FROM

请注意SELECT部分中列的顺序和名称无关紧要。数据将按照目标表中存在的顺序映射到列(类型也必须兼容)。因此,通常最好指定列:

INSERT INTO EXAMPLETABLE 
VALUES (IDTYPE, foofoofoo, foofoo, foo) 
SELECT @RANDOMEVARIABLE IDTYPE, 0 foofoofoo, 0 foofoo, 0 foo

如果不提供列别名,您将获得相同的结果:

INSERT INTO EXAMPLETABLE 
SELECT @RANDOMEVARIABLE, 0, 0, 0