日期:2014-05-17  浏览次数:20480 次

字段类型长度里面能不能填其他的东西(除了数字以外的)?
比如
declare @l int
set  @l=(select max(len(empno)) from empinfo)
select @l
alter table empinfo
alter column empno char(@l)


------最佳解决方案--------------------
create table #tb
(
id int,
name varchar(3)
)
go

declare @l int
set @l=20
declare @str varchar(max)
set @str=''
select @str='alter table #tb
alter column name char('+ltrim(@l)+')'
exec (@str)

insert #tb
select 1,'46474+97+6749+7+94'

select * from #tb

/*

id          name
----------- --------------------
1           46474+97+6749+7+94  

(1 行受影响)*/
能看明白吧

------其他解决方案--------------------
不可以  但是如果是动态的话  可以实现
------其他解决方案--------------------
exec('alter column empno char('+@l+')')