0

我有一个网络表单,它将用户输入到各个字段中,并将它们作为单独的列放入表中。然后我需要获取这行数据并将列中的数据作为行复制到另一个表中。第一个表中的列与第二个表中的一个 id 相关联(该 id 用于与表无关的其他目的,并且是一个静态集)。

我很难解决这个问题,所以我确信我上面的描述不是很清楚。这是一个简化的示例:

表格1

street_address | city | state | zip  

扳机

表 2

street_address | 1  
city | 2  
state| 3  
zip | 4  

如果表 1 中的一列留空,则根本不应该在表 2 中创建行。

同样,表 2 中使用的 id 已经设置(即,表 1 中的每一列都将匹配表 2 中的预定 id)。

对此的任何帮助都会很棒。如果我没有很好地解释这一切,我很抱歉。我会在问题出现时澄清问题。

谢谢你。

4

1 回答 1

2

听起来您的触发器需要UNPIVOTINSERTED表到另一个表。请记住,您需要将选择列表中的所有列转换为最长列的长度。这是一个SQL 小提琴

SELECT colName, value
FROM(
  SELECT 
     street_address
    ,CAST(city AS VARCHAR(100)) AS city
    ,CAST(state AS VARCHAR(100)) AS state
    ,CAST(zip AS VARCHAR(100)) AS zip
  FROM Table1
)AS p
UNPIVOT(
  value FOR colName IN(street_address, city, state, zip)
)AS unpvt
于 2013-02-16T02:40:12.510 回答