|
|
鉴于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
|
|