为每行SQL创建表

时间:2017-08-17 13:32:05

标签: mysql sql phpmyadmin mariadb adminer

我有几千行的.txt文件。在每一行上都有一个表的名称。 例如,这是文本文件的摘录:

香蕉

蓝莓

.......

我想用标题狗,猫,大象......创建表格。

如何实现此目的并将所有表添加到我的数据库中?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果所有表结构完全相同,那么您可以使用游标和动态sql的组合。将文本文件上载到表后,可以使用游标循环遍历每个文件。

CREATE TABLE #temp
(TableName NVARCHAR(20))
INSERT INTO #temp
VALUES ('Dog'),('Cat'),('Mouse')

DECLARE @mySQL NVARCHAR(MAX);
DECLARE @name NVARCHAR(50);

DECLARE crsr CURSOR FOR
SELECT TableName FROM #temp

OPEN crsr 
FETCH NEXT FROM crsr INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
    SET @mySQL = 'CREATE TABLE dbo.' + @name + ' (Col_1 CHAR(10), Col_2 INT)'
    PRINT @mySQL

    EXECUTE (@mySQL)

    FETCH NEXT FROM crsr INTO @name

END 

CLOSE crsr
DEALLOCATE crsr