sql脚本语法的最佳实践

时间:2011-07-13 10:42:34

标签: sql sql-server-2008

我的sql文件包含很长的Inserst。 问题是,当我想要编辑第12列时,我必须开始计算值区域中的列,这非常令人困惑。

他们看起来像:

enter image description here

由于你必须找到哪个值属于哪一列,所以

女巫非常容易混淆。

是否有另一种编写插入脚本的方法,因此使用其值更容易使用马赫列?或者可能有一个可以提供帮助的工具?

可能像 -

Insert tableName column1 = '10', column2 = '5' , column3 = 'asdsd' ....

P.S - 右键单击​​图像并“在新标签页中打开”

3 个答案:

答案 0 :(得分:1)

使用两行:

INSERT INTO TABLE  (COLUMN1, COLUMN2       , COLUMN3)
            VALUES (Value1 , "Long Value 2", "..."  );

答案 1 :(得分:1)

您可以使用新方法插入SQL Server 2008中引入的记录。

insert into @MyTable 
  (Column1, Column2, Column3, Column4, Column5,                   Column6) values
  (1,       2,       3,       4,       cast(6 as numeric(38,8))), 6),
  (1,       2,       3,       4,       cast(6 as numeric(38,8))), 6),
  (1,       2,       3,       4,       cast(6 as numeric(38,8))), 6),
  (1,       2,       3,       4,       cast(6 as numeric(38,8))), 6),
  (1,       2,       3,       4,       cast(6 as numeric(38,8))), 6)

您需要保持列名与数据对齐,当您在页面上有更多行时,您可以重新启动插入或在适当的位置添加列注释行

insert into @MyTable 
  (Column1, Column2, Column3, Column4, Column5,                   Column6) values
  (1,       2,       3,       4,       cast(6 as numeric(38,8))), 6),
  (1,       2,       3,       4,       cast(6 as numeric(38,8))), 6),
  (1,       2,       3,       4,       cast(6 as numeric(38,8))), 6),
--(Column1, Column2, Column3, Column4, Column5,                   Column6) values
  (1,       2,       3,       4,       cast(6 as numeric(38,8))), 6),
  (1,       2,       3,       4,       cast(6 as numeric(38,8))), 6)

您还可以将数据保存在实际的表中,然后更新表格。使用某个工具编写该表中插入的脚本。例如,在Server Management Studio中生成脚本。

答案 2 :(得分:0)

您不需要多个INSERT语句 - 一个会这样做。

您可以使用SELECT语句与UNION一起插入多行:

INSERT myTable (Col1, Col2)
SELECT val1, val2 UNION 
SELECT val3, val4 

如果您使用的是SQL Server 2008,则VALUES语句具有扩展名:

INSERT myTable (Col1, Col2)
VALUES (val1, val2),
(val3, val4)

有关MSDN上的SQL Server,请参阅INSERT


如果你在谈论可读性,你可以使用类似下面的东西(虽然你最终会得到一个很长的文件),编码这将需要很多时间:

INSERT myTable (Col1, Col2)
SELECT val1, -- Col1
       val2 -- Col2
UNION 
SELECT val3, -- Col1
       val4 -- Col2

您没有标准约定,因为此类脚本适用于在SQL中运行,而不是用于读取。