我需要使用动态SQL创建一个SQL表

时间:2018-10-31 06:29:11

标签: sql sql-server tsql dynamic ssms

我正在尝试在 SSMS 中编写一个存储过程,以创建一个表,以及两列,其中表的主题为单个参数。该表必须命名为t,后跟表的主题。对于列,第一列是自动递增代理键ID字段(和主键),该字段称为表的主题,其后是{ {1}}。

第二列是自然键,它被称为表的主题。例如,要创建一个主题为Student的表,将创建一个名为ID的表,其中包含一个tStudent代理键列和一个名为Student的自然键列。我正在尝试使用动态SQL语句(这是我的新手)来做到这一点,并在尝试实现我的自然键列时遇到问题。

StudentID

仅添加ALTER PROC spCreateTable @subjectOfTable varchar(50) AS DECLARE @dynamicSQL nvarchar(500), @tableName varchar(50), @tableID varchar(50); SET @tableName = ('t' + @subjectOfTable); SET @tableID = (@subjectOfTable + 'ID'); SET @dynamicSQL = 'CREATE TABLE ' + @tableName + ' ( '+ @tableID + ' INT NOT NULL PRIMARY KEY IDENTITY(1,1) ' + @subjectOfTable + ' VARCHAR(50) ) '; EXEC (@dynamicSQL) GO 列就可以使其正常工作,但是自然键列tableID仍然存在语法问题。有人请帮忙!

0 个答案:

没有答案