我需要更新 int 数据类型的表中的列,但我用于更新的其他表中的值是 nvarchar。如果可以的话,请告诉我。
问问题
105 次
3 回答
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
于 2012-05-17T13:16:38.443 回答
0
如果您在 nvarchar 列中的所有数据都是数字,那么您应该能够:
update ATable
set intColumn = cast(o.chardata as int)
from ATable a
join OtherTable o on a.tableid=o.tableid
现在,您还可以使用 ISNUMERIC() 约束输入逻辑来处理非数字数据。
我看到 aF 打败了我。
于 2012-05-17T13:17:54.603 回答
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
于 2012-05-17T18:35:59.613 回答