3 个解决方案
#1
前面的生成一个int 型变量已经实现,和后面把一个表的6个字段赋给这个6个变量也实现,就是中间的根据int型生成不同个数变量,我搜索了下,好像sql没有这种写法,我用 @sql=‘declare ' 方法 (
返回结果 column ’@a1‘ not found
declare @j_i_f int,
@j_i_f_char char(20),
@j_name char(40),
@sql char(2000)
select @j_i_f=1
select @j_name='a'
select @j_i_f_char=convert(char,@j_i_f)
set @sqlcmd='declare @'+@j_name+@j_i_f_char+' char(20)'
execute(@sql)
select @a1
返回结果 column ’@a1‘ not found
#2
为什么要动态定义变量呢?
定义的变量在execute()执行后, 你也访问不了。
语句要改成E-SQL的形式:
begin
declare @j_i_f int,
@j_i_f_char char(20),
@j_name char(40),
@sql char(2000);
select @j_i_f=1;
select @j_name='a';
select @j_i_f_char=convert(char,@j_i_f);
set @sqlcmd='declare @'+@j_name+@j_i_f_char+' char(20)';
execute(@sql);
select @a1;
end
定义的变量在execute()执行后, 你也访问不了。
语句要改成E-SQL的形式:
begin
declare @j_i_f int,
@j_i_f_char char(20),
@j_name char(40),
@sql char(2000);
select @j_i_f=1;
select @j_name='a';
select @j_i_f_char=convert(char,@j_i_f);
set @sqlcmd='declare @'+@j_name+@j_i_f_char+' char(20)';
execute(@sql);
select @a1;
end
#3
好的,我这边又执行了下 打分号的那一行 显示 Syntax error near ‘;’ on line 8
#1
前面的生成一个int 型变量已经实现,和后面把一个表的6个字段赋给这个6个变量也实现,就是中间的根据int型生成不同个数变量,我搜索了下,好像sql没有这种写法,我用 @sql=‘declare ' 方法 (
返回结果 column ’@a1‘ not found
declare @j_i_f int,
@j_i_f_char char(20),
@j_name char(40),
@sql char(2000)
select @j_i_f=1
select @j_name='a'
select @j_i_f_char=convert(char,@j_i_f)
set @sqlcmd='declare @'+@j_name+@j_i_f_char+' char(20)'
execute(@sql)
select @a1
返回结果 column ’@a1‘ not found
#2
为什么要动态定义变量呢?
定义的变量在execute()执行后, 你也访问不了。
语句要改成E-SQL的形式:
begin
declare @j_i_f int,
@j_i_f_char char(20),
@j_name char(40),
@sql char(2000);
select @j_i_f=1;
select @j_name='a';
select @j_i_f_char=convert(char,@j_i_f);
set @sqlcmd='declare @'+@j_name+@j_i_f_char+' char(20)';
execute(@sql);
select @a1;
end
定义的变量在execute()执行后, 你也访问不了。
语句要改成E-SQL的形式:
begin
declare @j_i_f int,
@j_i_f_char char(20),
@j_name char(40),
@sql char(2000);
select @j_i_f=1;
select @j_name='a';
select @j_i_f_char=convert(char,@j_i_f);
set @sqlcmd='declare @'+@j_name+@j_i_f_char+' char(20)';
execute(@sql);
select @a1;
end
#3
好的,我这边又执行了下 打分号的那一行 显示 Syntax error near ‘;’ on line 8