SQL Server查询结果为INSERT

时间:2014-09-08 14:00:46

标签: sql tsql sql-server-2012

我正在尝试连接lastName(3个字母)+ firstName(2个字母)以创建新用户名。当我使用此脚本时,它为连接结果创建了新记录。

USE [database]
INSERT INTO table (username)
SELECT SUBSTRING(lastName, 1, 3) + SUBSTRING(firstName, 1, 2)
FROM [database].[dbo].table

有人可以告诉我如何使用新用户名附加原始记录吗?

4 个答案:

答案 0 :(得分:2)

我不确定我的问题是否正确,但不应该做以下工作?

UPDATE table
SET username = SUBSTRING(lastName, 1, 3) + SUBSTRING(firstName, 1, 2)

这会更新表格中每条记录的username

答案 1 :(得分:1)

试试这个:

USE [database]

UPDATE MyTable
SET USERNAME = SUBSTRING(lastName, 1, 3) + SUBSTRING(firstName, 1, 2)

答案 2 :(得分:1)

如果您只想更改现有记录的用户名,请使用update代替insert

UPDATE table
   SET username = SUBSTRING(lastName, 1, 3) + SUBSTRING(firstName, 1, 2);

如果要为包含更多列的相同用户插入新行,请将其添加到insert

INSERT INTO table (username, col1, col2, . . ., coln)
SELECT SUBSTRING(lastName, 1, 3) + SUBSTRING(firstName, 1, 2),
       col1, col2, . . ., coln
FROM [database].[dbo].table;

答案 3 :(得分:1)

您想要更新而不是插入。以下内容将使用新用户名更新所有记录。如果只想对单个记录进行更具体的更新,则需要WHERE子句来标识特定的行。

UPDATE table
SET username = SubString(lastName, 1, 3) + SubString(firstName, 1, 2);