如何将一行数据合并到 sql 服务器中的一列
how to merge one row data to one column in sql server
我有一个触发器是这样的:
alter trigger newTrigger
on table2
after insert
as
begin
declare @rowData nvarchar(max)
if exists(select * from inserted)
begin
Set @rowData = (select * from inserted)
end
insert into table1(rowData, date)
values(@rowData, getdate())
end
我想插入table2后,插入的记录和日期插入到table1
但是我无法将行的数据合并为一列!
------------------table2--------------------
id | name | lname | birth
1 j jj 2000-03-03
-------------------table1 after insert into table2 -----------------
rowData | date
a,j,jj,2000-03-03 2017-05-07
您必须进行转换并在每一列中逐一添加
例如:
Set @rowData = (select cast(col1 as varchar(10)) + cast(col2 as varchar(10)) from inserted)
供您使用列名称进行编辑。如果该列已经是 varchar,您唯一需要注意的是避免长度溢出:
Set @rowData = (select cast((id + ',' + name + ',' + lname + ',' + cast(birth as varchar(12)) ) as varchar(4000)) from inserted)
我有一个触发器是这样的:
alter trigger newTrigger
on table2
after insert
as
begin
declare @rowData nvarchar(max)
if exists(select * from inserted)
begin
Set @rowData = (select * from inserted)
end
insert into table1(rowData, date)
values(@rowData, getdate())
end
我想插入table2后,插入的记录和日期插入到table1 但是我无法将行的数据合并为一列!
------------------table2--------------------
id | name | lname | birth
1 j jj 2000-03-03
-------------------table1 after insert into table2 -----------------
rowData | date
a,j,jj,2000-03-03 2017-05-07
您必须进行转换并在每一列中逐一添加
例如:
Set @rowData = (select cast(col1 as varchar(10)) + cast(col2 as varchar(10)) from inserted)
供您使用列名称进行编辑。如果该列已经是 varchar,您唯一需要注意的是避免长度溢出:
Set @rowData = (select cast((id + ',' + name + ',' + lname + ',' + cast(birth as varchar(12)) ) as varchar(4000)) from inserted)