可以
declare @tablename varchar(30),@Str varchar(8000)
set @tablename='abc'
set @str='create table '+@tablename+'(col int)'
exec(@str)
declare @tablename varchar(30),@Str varchar(8000)
set @tablename='abc'
set @str='create table '+@tablename+'(col int)'
exec(@str)
再执行exec(@str)就可以了EXECUTE
执行标量值的用户定义函数、系统过程、用户定义存储过程或扩展存储过程。同时支持 Transact-SQL 批处理内的字符串的执行 若要唤醒调用函数,请使用 EXECUTE stored_procedure 中描述的语法。语法
执行存储过程:[ [ EXEC [ UTE ] ]
{
[ @return_status = ]
{ procedure_name [ ;number ] | @procedure_name_var
}
[ [ @parameter = ] { value | @variable [ OUTPUT ] | [ DEFAULT ] ]
[ ,...n ]
[ WITH RECOMPILE ] 执行字符串:EXEC [ UTE ] ( { @string_variable | [ N ] 'tsql_string' } [ + ...n ] )
@tablename varchar(10)
as
begin
declare @str varchar(80000)
@str='select * into bbb from '+@tablename
exec (@str)
EndGO
Incorrect syntax near '@str'must declare the variable '@str'
@tablename varchar(10)
as
begin
declare @str varchar(8000)
set @str='select * into bbb from '+@tablename
exec (@str)
EndGO
declare @createtemptable varchar(8000),@i int,@sql varchar(8000)
declare @Columns varchar(50),@Key varchar(200),@ColumnsType varchar(50)
declare @ColumnsTemp as varchar(4000)
set @sql='a=float,b=float,c=float,d=float,e=float,f=float'
set @Columns='' set @ColumnsType='' set @ColumnsTemp=''
set @createtemptable ='' set @Key=''
set @i=charindex(',',@sql)
while @i>0
begin
set @Key=left(@sql,@i-1)
set @Columns=left(@Key,patindex('%[=]%',@Key)-1)
set @ColumnsType=right(@Key,len(@Key)-patindex('%[=]%',@Key) )
set @ColumnsTemp=@ColumnsTemp+char(10)+@Columns+' '+@ColumnsType+','
set @sql=right(@sql,len(@sql)-@i)
set @i=charindex(',',@sql)
set @Key=''
set @Columns=''
set @ColumnsType=''
end
if len(@sql)>0
begin
set @Key=@sql
set @Columns=left(@Key,patindex('%[=]%',@Key)-1)
set @ColumnsType=right(@Key,len(@Key)-patindex('%[=]%',@Key) )
set @ColumnsTemp=@ColumnsTemp+char(10)+@Columns+' '+@ColumnsType
end
set @createtemptable=@createtemptable+'CREATE table #Rec ('+@ColumnsTemp+')'
exec(@createtemptable+'insert #Rec values (1,2,3,4,5,6)
select * from #Rec ')--结果
a b c d e f
1.0 2.0 3.0 4.0 5.0 6.0