Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLServer2008ALTERTABLE连接_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

SQLServer2008ALTERTABLE连接

SQLServer2008ALTERTABLE连接,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我需要将2个int和一个varchar列连接到plan\u no中,这样看起来就像这样 非常感谢您的帮助。您需要进行转换: 您可以更改您的DDL: alter table t add plan_no as (cast(lot as varchar(255)) + '-' +forester + '-' +cast([year] as varchar(5))) 编辑: update t set plan_no = cast(lot as varchar(255)) + '-' +fo

我需要将2个int和一个varchar列连接到
plan\u no
中,这样看起来就像这样

非常感谢您的帮助。

您需要进行转换:

您可以更改您的
DDL

alter table t
add plan_no as (cast(lot as varchar(255)) + '-' +forester + '-' +cast([year] as varchar(5)))
编辑:

update t
     set plan_no = cast(lot as varchar(255)) + '-' +forester + '-' +cast([year] as varchar(5))
where plan_no is null;

我们可以尝试在此处使用
CONVERT
将数字字段转换为文本:

SELECT
    CONVERT(varchar(10), lot) + '-' + forester + '-' +
        CONVERT(varchar(10), year) AS plan_no
FROM yourTable;
如果需要更新,只需使用:

UPDATE yourTable
SET plan_no = CONVERT(varchar(10), lot) + '-' + forester + '-' +
        CONVERT(varchar(10), year);

我认为您希望更新当前表中的数据:

UPDATE TableName
SET plan_no = cast(lot as nvarchar(50)) + '-' + forester + '-' + cast([year] as nvarchar(50))

请注意:如果lot、forester或year列可以包含空值,则需要通过
ISNULL()
function

将两个整数转换为varchar,然后Concate谢谢,但我需要将数据插入列计划中\n这也可以,但我需要将其插入column@ScottSmith不,实际上你不应该。创建一个计算列来执行此操作,它将自动合并对“支持”列所做的任何更改。在你做之前,仔细考虑你的要求。当批次>9999时会发生什么情况?当批次<1000时会发生什么情况?如果需要固定长度的格式,则需要进行适当的计划。
UPDATE TableName
SET plan_no = cast(lot as nvarchar(50)) + '-' + forester + '-' + cast([year] as nvarchar(50))