我尝试连接两个列,并在SQL Server 2014中添加逗号和空格。
以下是我使用的代码(出于隐私原因而修改表名)
INSERT INTO Table (EntityName)
SELECT CONCAT(MailingLine1, ', ', MailingState)
FROM Table
这是正确连接字符串,但在此过程中,它会导致所有其他列和所有其他行读取为NULL并从表中擦除数据。
大约有30列已经包含数据
有什么想法吗?
答案 0 :(得分:1)
如果您要使用此函数CONCAT(MailingLine1, ', ', MailingState)
添加新列,以便可以使用计算列
--if [EnityName] already exists in the table you have to drop it first
alter table TABLE
drop column [EntityName]
alter table TABLE
add [EntityName] as CONCAT(MailingLine1, ', ', MailingState)
如果您不想添加计算列,可以关注@GordonLinoff回答(使用UPDATE命令)
否则,如果您要插入新行而不更新行,问题是您只在EntityName
列中插入值并忽略所有其他列,您可以将值指定为以下 (假设你有3列)
Insert into Table (EntityName,EntityName2,EntityName3)
SELECT CONCAT(MailingLine1, ', ', MailingState),Value1,Value2 FROM Table
其中Value1,Value2
可以是表中的列,或者是固定值,即。 'John'
答案 1 :(得分:0)
为其他volums设置默认值,非NULL值。 (见例)
ALTER TABLE {table_name} ADD DEFAULT {dafault_value} FOR {column_name}
答案 2 :(得分:0)
我猜你想要update
,而不是insert
:
update Table
set EntityName = CONCAT(MailingLine1, ', ', MailingState);