存储过程是一种存放在SQL Server中的一段程序,可以通过调用实现特定的操作。为了通过存储过程向 SQL Server 中新建表,并让表名和列的类型可以由参数确定,通常可以使用 CREATE TABLE 动态 SQL 配合存储过程参数实现。以下是实现该功能的步骤:

1. 定义存储过程

利用 CREATE PROCEDURE 来创建一个可动态传入表名列的类型的存储过程。

CREATE PROCEDURE CreateDynamicTable
    @TableName NVARCHAR(50),
    @ColumnDefinitions NVARCHAR(MAX)
AS
BEGIN
    DECLARE @SQL NVARCHAR(MAX);
    SET @SQL = 'CREATE TABLE ' + QUOTENAME(@TableName) + ' (' + @ColumnDefinitions + ');';
    EXEC sp_executesql @SQL;
END;

2. 调用存储过程

通过传入表名和列定义参数调用该存储过程。例如:

EXEC CreateDynamicTable @TableName = 'StudentTable', @ColumnDefinitions = 'ID INT PRIMARY KEY, Name NVARCHAR(50)';

小贴士:在使用该存储过程前,确保列定义格式正确,避免 SQL 执行错误。