1
我正在尝试创建一个非常简单的过程(使用简单的代码 - 我是一名初学者,并且希望保持代码尽可能简单),可以将一个表命名为“表1”,并创建一个名为表“学生”包含3列:ID,名称,标志删除/创建表(SQL - 过程)
这是我的代码,并没有在所有的工作:
CREATE PROCEDURE Drop_Create
@Table1 VARCHAR(MAX),
@Students VARCHAR(MAX)
AS
BEGIN
DECLARE @SQL VARCHAR(MAX);
SELECT @SQL = 'CREATE TABLE ' + @Students + '('SELECT @SQL = @SQL + '[ID] [int] IDENTITY(1,1) NOT NULL,[Name] [NVARCHAR(50)] NOT NULL,[Mark] [INT])';
SET @SQL = 'IF EXISTS DROP TABLE [' + @Table1 + ']'
PRINT @SQL;
EXEC @SQL;
END
GO
谢谢你的帮助。我想知道是否还有其他的方法可以写出Drop的第一行: DECLARE @SQL VARCHAR(MAX)='IF EXISTS(SELECT * FROM sys.objects WHERE object_id .... – user3756697
这是“皮带和护腕”有时候丑陋是最好的,你是否需要使用动态SQL?你从来没有回答过我的问题。 –