用sql 储存过程复制表结构遇到的问题,求助大家了

王朝mssql·作者佚名  2006-01-09
宽屏版  字体: |||超大  

鉴于select into语句的局限性(不能复制约束)

我尝试用储存过程来建立一个表。

要求此table的名字是动态赋予的,但是因为对储存过程的不了解,请求大家的帮助

主要是

1。N'[dbo].'+@tablename 写错了不知道怎么写

2。CREATE TABLE '[dbo].'+@tablename 也不知道怎么写

CREATE PROCEDURE [dbo].copyadminproducts

@tablename nvarchar(20)

AS

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].'+@tablename and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table '[dbo].'+@tablename

CREATE TABLE '[dbo].'+@tablename (

[ID] [int] IDENTITY (1, 1) NOT NULL ,

[productsname] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,

[productsid] [int] NULL ,

[creteddate] [datetime] NULL

) ON [PRIMARY]

ALTER TABLE '[dbo].'+@tablename WITH NOCHECK ADD

CONSTRAINT [PK_@tablename] PRIMARY KEY CLUSTERED

(

[ID]

) ON [PRIMARY]

ALTER TABLE '[dbo].'+@tablename ADD

CONSTRAINT [DF_@tablename_creteddate] DEFAULT (getdate()) FOR [creteddate],

CONSTRAINT [IX_@tablename] UNIQUE NONCLUSTERED

(

[productsid]

) ON [PRIMARY] ,

CONSTRAINT [IX_@tablename_1] UNIQUE NONCLUSTERED

(

[productsname]

) ON [PRIMARY]

GO

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有