说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

求助,如所示这个简短的代码,问题出在哪?谢谢

编辑:说三道四文库 发布时间:2018-04-22 02:58
HTML文档下载 WORD文档下载 PDF文档下载

create proc p_text
as
declare @n int
select @n=1
alter table test add aa+@n varchar(20)

我的意思的就是在一个表test中插入一新列,但是列名是变量,求助,谢谢。
自己顶一下
试试动态SQL。
能详细点吗?
create proc p_text
as
declare @n int,@s varchar(100)
select @n=1
set @s='alter table test add aa'+ltrim(@n)+' varchar(20)'

exec(@s)
create proc p_text
as
declare @n int
declare @sql nvarchar(1000)
select @n=1

@sql = 'alter table test add aa '+@n 
exec(@sql)


create proc p_text
as
declare @n int
set @n=1
declare @sql
set @sql = 'alter table test add aa'+@n + ' varchar'
exec (@sql)
...

引用 6 楼 hao1hao2hao3 的回复:
SQL code


create proc p_text
as
declare @n int
set @n=1
declare @sql
set @sql = 'alter table test add aa'+@n + ' varchar'
exec (@sql)
...



忘了数据类型


create proc p_text
as
declare @n int
set @n=1
declare @sql varchar(200)
set @sql = 'alter table test add aa'+@n + ' varchar'
exec (@sql)


create proc p_text
as
declare @n int
set @n=1
declare @sql varchar(200)
set @sql = 'alter table test add aa'+@n + ' varchar(20)'
exec (@sql)

create proc p_text
as
begin
  declare @n int,@s varchar(100)
  select @n=1
  set @s='alter table test add aa'+ cast(@n as varchar(10)) +' varchar(20)'
  exec(@s)
end
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘