我设法使用存储过程创建了一个带有变量名的表的副本。但是我很难理解如何将约束合并到存储过程中。
问题:约束必须是一个变量,因为当它复制一个表时,它不能命名我拥有的与以前使用的相同的 PK。我在这些领域遇到语法错误。
我对 SQL Server 非常陌生......今天才刚刚开始学习!!所以请用虚拟术语解释。
到目前为止的代码如下:
CREATE PROCEDURE procFinancialPeriodTable
(@TABLENAME as varchar (50))
AS
DECLARE @SQL varchar(2000)
--SET @SQL = "if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[@TABLENAME]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
--drop table [dbo].[@TABLENAME]
BEGIN
SELECT @SQL = 'CREATE TABLE ' + @TABLENAME + '('
SELECT @SQL = @SQL + '[ID] [int] IDENTITY(1,1) NOT NULL,[FinPeriodNr] [int] NOT NULL,[FinCurrentPeriod] [bit] NULL,[FinStart] [date] NULL,[FinEnd] [date] NULL,[FinStatusOpen] [bit] NOT NULL,[PeriodClosedTS] [smalldatetime] NULL,[PeriodClosedUID] [varchar](3) NULL,)'
CONSTRAINT [PK_FinancialPeriod' + …Run Code Online (Sandbox Code Playgroud)