T-SQL - 插入语句忽略列

时间:2014-03-03 11:17:38

标签: tsql asp-classic sql-server-2008-r2

我有一张包含十几个列的表格。我只知道第一列和最后4列的名称(理论上,我只能知道一列的名称而不是它的位置)

如何编写忽略此列的语句?目前我在ASP中进行各种列计数并构建一个声明,但是想知道是否有更简单的方法

更新

INSERT INTO tblName VALUES ("Value for col2", "Value for col3") 

但是这张桌子有一个col4,可能还有更多,我忽略了。

我基本上有一个CSV文件。此CSV文件没有标头。它的列数比我插入的表少“X”。我想将CSV中的数据插入表中。

有许多不同结构的表和许多CSV文件。我创建了一个ASP页面来获取任何CSV并将其上传到相应的表格(基于CSV文件中的参数)。

它运行正常,我只是想知道当我执行INSERT语句时,如果我可以忽略某些列并减少我的代码。

因此,假设CSV的数据如下

123 | 456 | 789
234 | 567 | 873

该表的结构为

ID | Col1 | Col2 | Col3 | Col4 | Col5

我目前构造一个说明

的插入语句
INSERT into tblName ("123", "456","789","","")

但是我想知道是否有一种方法可以通过某种方式“忽略”列来省略空值。如上所述,除了我没有数据的列名之外,列名称是未知的。

2 个答案:

答案 0 :(得分:1)

没有Sql快捷方式
Select * (except column col1) from ...

你必须从数据库元数据构建你的Sql,就像你已经理解正确的那样。

答案 1 :(得分:0)

您可以指定要插入的列。

所以不是......

INSERT INTO tblName VALUES ("Value for col2", "Value for col3")

您可以指定列名...

INSERT INTO tblName (ColumnName1, ColumnName2) VALUES ("Value for col2", "Value for col3")