在SQL Server 2005的存储过程中动态创建表
在存储过程中动态创建表如果不使用参数的话很好创建。方法如下:
Create procedure [dbo].[Logs]
AS
begin transaction
--创建临时表,直接指定表名
create table temp_tablename
(
id int primary key,
da varchar(300),
fs int
)
declare @count int
select @count=@@error
if(@count=0)
commit transaction
else
rollback transaction
如果要将传入参数作为数据表名的话,就会遇到一个问题:如果表名是数字那么SQL SERVER 2005认不出来,会提示错误。必须将数字的表名前加上非数字的字符。存储过程如下所示:
Create procedure createtable
@tName varchar(20)
as
declare @tablename varchar(20)
set @tablename=’temp’+@tName
exec(
’create Table mailto:%A1%AF+@tablename+%A1%AF
( name nvarchar(15),
address nvarchar(50)
)’
)