Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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
Sql server 2008 更新表中的列_Sql Server 2008_Sql Server 2005 - Fatal编程技术网

Sql server 2008 更新表中的列

Sql server 2008 更新表中的列,sql-server-2008,sql-server-2005,Sql Server 2008,Sql Server 2005,我需要更新int数据类型的表中的一列,但用于更新的其他表中的值是nvarchar。 如果达到了这一点,请让我知道。可能是这样的: update tablename set t.column = convert(int, t2.column) from tablename t inner join secondtablename t2 on t.column = t2.column where ISNUMERIC(t2.column) = 1 如果nvarchar列中的所有数据都是数字,则您应该

我需要更新int数据类型的表中的一列,但用于更新的其他表中的值是nvarchar。
如果达到了这一点,请让我知道。

可能是这样的:

update tablename
set t.column = convert(int, t2.column)
from tablename t
inner join secondtablename t2 on t.column = t2.column
where ISNUMERIC(t2.column) = 1

如果nvarchar列中的所有数据都是数字,则您应该能够执行以下操作:

update ATable
set intColumn = cast(o.chardata as int)
from ATable a
join OtherTable o on a.tableid=o.tableid
现在,您还可以使用ISNUMERIC()约束放入逻辑来处理非数字数据


我看到aF打了我一拳。

是来自nvarchar列编号的值吗?可能是数字或字符。如果它是一个数字,那么将其插入相同的字符,但如果它是一个字符,那么如何才能实现呢?挑剔:set t.column应该是column。不能在集合的列名中使用别名。@Rob好的,我会的。这是新的吗?我肯定我以前也试过,但却犯了一个错误…@Rob我不知道,我觉得没有理由使用它。一次只能更新一个表。我知道,如果尝试在语句的update部分中为表添加别名,则会出现错误。也许这就是我在想的错误?不知道。。
CREATE TABLE #t
(
    ID int IDENTITY(1,1),
    Column1 int
)

CREATE TABLE #t1
(
    ID int IDENTITY(1,1),
    Column2 Varchar(50)
)

INSERT INTO #t(Column1)VALUES(1)
INSERT INTO #t(Column1)VALUES(2)

INSERT into #t1(Column2)values('Alpha Numeric')
INSERT into #t1(Column2)values('12')

UPDATE t
SET t.Column1 = t1.Column2
FROM #t t
INNER join #t1 t1 on t.ID = t1.ID
Where ISNUMERIC(t1.Column2) = 1

select * FROM #t

DROP TABLE #t
DROP TABLE #t1