试试
alter PROCEDURE dbo.[tablename]
(
@field1 nvarchar(50)
)
ASdeclare @sql varchar(8000)set @sql =
'cREATE TABLE dbo.[' + @xx + ']
(
序号 int NOT NULL IDENTITY (1, 1),
字段1 nvarchar(50) NULL,
) ON [PRIMARY]
GO'exec (@sql)
alter PROCEDURE dbo.[tablename]
(
@field1 nvarchar(50)
)
ASdeclare @sql varchar(8000)set @sql =
'cREATE TABLE dbo.[' + @xx + ']
(
序号 int NOT NULL IDENTITY (1, 1),
字段1 nvarchar(50) NULL,
) ON [PRIMARY]
GO'exec (@sql)
alter PROCEDURE dbo.[tablename]
(
@field1 nvarchar(50)
)
ASdeclare @sql varchar(8000)set @sql =
'cREATE TABLE dbo.[' + @xx + ']
(
序号 int NOT NULL IDENTITY (1, 1),
字段1 nvarchar(50) NULL,
) ON [PRIMARY]
'exec (@sql)GO
--根据参数动态创建表及字段
CREATE PROCEDURE dbo.pro_Ins_AutoTable
@name varchar(50),
@count int
as
declare @tbName varchar(50)
set @tbName='tb'+rtrim(ltrim(@name))+rtrim(ltrim(str(@count)))
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].['+@tbName+']') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
return;
declare @i int,
@tmp varchar(2000)
set @i=1
set @tmp=''
while @i<=@count
begin
set @tmp=@tmp+'[f'+rtrim(ltrim(str(@i)))+'] [int] NOT NULL,'
set @i=@i+1
end
exec('CREATE TABLE [dbo].['+@tbName+'] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
'+@tmp+'
[re] [varchar] (2000) COLLATE Chinese_PRC_CI_AS NULL ,
[date] [datetime] NULL
) ON [PRIMARY]')
exec('ALTER TABLE [dbo].['+@tbName+'] WITH NOCHECK ADD
CONSTRAINT [PK_'+@tbName+'] PRIMARY KEY CLUSTERED
(
[id]
) ON [PRIMARY] ')
GO
(
@xx nvarchar(50)
)
ASdeclare @sql varchar(8000)set @sql =
'cREATE TABLE dbo.[' + @xx + ']
(
序号 int NOT NULL IDENTITY (1, 1),
字段1 nvarchar(50) NULL,
) ON [PRIMARY]
'exec (@sql)
上面的这个好用