用c#拼接如下存储过程时出错。放在mysql中,如果将sb1.Append("DELIMITER ;;");独占一行则可以,正确写法是怎样?
StringBuilder sb1 = new StringBuilder();
sb1.Append($"CREATE DATABASE IF NOT EXISTS {"webui" + DateTime.Now.Year};");
sb1.Append("DROP PROCEDURE IF EXISTS `AddColumn`;");
sb1.Append("DELIMITER ;;");
sb1.Append("CREATE DEFINER=`root`@`localhost` PROCEDURE `AddColumn`(IN tableName VARCHAR(50), IN columnName VARCHAR(50), IN columnType VARCHAR(50))");
sb1.Append("BEGIN ");
sb1.Append("DECLARE columnExists INT DEFAULT 0;");
sb1.Append(" SELECT COUNT(*) INTO columnExists FROM INFORMATION_SCHEMA.COLUMNS ");
sb1.Append("WHERE TABLE_NAME = tableName AND COLUMN_NAME = columnName;");
sb1.Append(" IF columnExists = 0 THEN");
sb1.Append(" SET @ddl = CONCAT('ALTER TABLE ', tableName, ' ADD COLUMN ', columnName, ' ', columnType);");
sb1.Append("PREPARE stmt FROM @ddl;");
sb1.Append("EXECUTE stmt;");
sb1.Append("DEALLOCATE PREPARE stmt;");
sb1.Append("END IF;");
sb1.Append("END");
sb1.Append(";;");
sb1.Append("DELIMITER ;");