同意楼上: CREATE PROCEDURE dt_login @username varchar(100), @result integer output AS begin declare @sql_str varchar(1000) if left(@username,len( @username )) in (select left(name,len( @username )) from sysobjects) begin set @result=0 end else begin set @result=1 set @sql_str = 'CREATE TABLE ' + @username+'(field1 char(20),field2 int)' exec(@sql_str) end end GOexec dt_login '#table1',0 运行结果: The command(s) completed successfully.
begin
set @result=1
set @sql_str = 'CREATE TABLE ' + @username
exec(@sql_str)
end这段有问题
你创建的表没有字段,语法有错误,加上字段就行了。
CREATE PROCEDURE dt_login
@username varchar(100),
@result integer output
AS
begin
declare @sql_str varchar(1000)
if left(@username,len( @username )) in (select left(name,len( @username )) from sysobjects)
begin
set @result=0
end
else
begin
set @result=1
set @sql_str = 'CREATE TABLE ' + @username+'(field1 char(20),field2 int)'
exec(@sql_str)
end
end
GOexec dt_login '#table1',0
运行结果:
The command(s) completed successfully.
你创建的表没有字段,语法有错误,加上字段就行了。
Return @result 语句,供前台判断使用
set @sql_str = 'CREATE TABLE ' + @username
缺少字段名。
你创建的表没有字段,语法有错误,加上字段就行了。
我在sysobjects表中找不到新创建的临时表的名称..
只有一个#的是局部临时表,只在创建它的过程中有效,这个过程结束,它也会被自动删除.而且,临时表的属性也不是保存在当前数据库的sysobjects中,是保存在tempdb这个数据库的sysobjects中
并且其表名为:临时表名+系统随机分配的编号
改成全局临时表就行了..
我是用delphi来调这个的..
现在给大家加分