TRY:
CREATE Procedure sp_WebShoes_Test
/*
测试存储过程
*/
AsDECLARE @sSql VARCHAR(8000)Select @sSql = ''
BEGIN
Select @sSql = 'Create Table ##QueryDataS (ShopID Char(4))'
Exec (@sSql)
Select * From ##QueryDataS/*这句出错*/
END
Return(0)
GO
CREATE Procedure sp_WebShoes_Test
/*
测试存储过程
*/
AsDECLARE @sSql VARCHAR(8000)Select @sSql = ''
BEGIN
Select @sSql = 'Create Table ##QueryDataS (ShopID Char(4))'
Exec (@sSql)
Select * From ##QueryDataS/*这句出错*/
END
Return(0)
GO
Create Table #QueryDataS (ShopID Char(4))
Select * From #QueryDataS
END
/*
测试存储过程
*/
AsDECLARE @sSql VARCHAR(8000)Select @sSql = ''
BEGIN
Select @sSql = 'Create Table ##QueryDataS (ShopID Char(4))'--改为全局临时表
Exec (@sSql)
Select * From ##QueryDataS/*这句出错*/
END
Return(0)
GO
/*
测试存储过程
*/
AsDECLARE @sSql VARCHAR(8000)Select @sSql = ''
BEGIN
Select @sSql = 'Create Table #QueryDataS (ShopID Char(4))'
Exec (@sSql+' Select * From ##QueryDataS')
END
Return(0)
GO
/*
测试存储过程
*/
AsDECLARE @sSql VARCHAR(8000)Select @sSql = ''
BEGIN
Select @sSql = 'Create Table #QueryDataS (ShopID Char(4))'
Exec (@sSql+' Select * From #QueryDataS')
END
Return(0)
GO
{
int i;
i=2; <<==这里是对的
}
i=2; <<==这里肯定错了解决的办法:create table #中间临时表(结构和里面的一样 int)exec('create ....... insert #中间临时表 select * from #中间临时表')select * from #中间临时表
CREATE Procedure sp_WebShoes_Test
/*
测试存储过程
*/
AsDECLARE @sSql VARCHAR(8000)
declare @tbname varchar(250) --这个变量用来保存全部临时表的表名set @tbname='##QueryDataS'+cast(newid() as varchar(36)) --给临时表加上一个后缀,防止多用户同时调用时产生冲突Select @sSql = ''
BEGIN
Select @sSql = 'Create Table ['+@tbname+'] (ShopID Char(4))'
Exec (@sSql)
exec ('Select * From ['+@tbname+']')
END
Return(0)
GO
创建 uniqueidentifier 类型的唯一值。 语法
NEWID ( )返回类型
uniqueidentifier