我需要更新一个int数据类型的表中的列,但是用于更新的其他表的值是nvarchar。 如果是这样,请告诉我。
答案 0 :(得分:2)
可能是这样的:
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
答案 1 :(得分:0)
如果nvarchar列中的所有数据都是数字,那么,您应该能够:
update ATable
set intColumn = cast(o.chardata as int)
from ATable a
join OtherTable o on a.tableid=o.tableid
现在,您还可以输入逻辑来处理带有ISNUMERIC()约束的非数字数据。
我看到aF打败了我。
答案 2 :(得分:0)
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