create table bb
(
sx# int
)
declare @sx# int
set @sx#='30160001'
while @sx#<'30180001'
begin
insert into bb values (@sx#)
set @[email protected]#+1
end
select * from bb
DECLARE @I INT
SET @I=0
UPDATE bb SET SX#='3016'+RIGHT('0000'+CAST(@I AS varchar(4)),4),@[email protected]+1
--更新时提以下信息
服务器: 消息 245,级别 16,状态 1,行 3
将 varchar 值 '3016000*' 转换为数据类型为 int 的列时发生语法错误。
------解决方案--------------------
declare @sx# int
set @sx#='30160001'
[email protected]#是int类型
[email protected]#='30160001',从字面上看是字符型,会被转换,应该是转换的时候超出范围了