有可能拥有完全动态的sql存储过程吗?在过去的几个小时里,我已经阅读了动态sql,但是找不到我正在寻找的“完全动态”解决方案。
我想创建一个允许导入该类型的所有文件的过程,只需传递文件位置、表名、行数据和值类型。它不应该关心有多少列,使用什么数据类型等等。
原因是,我们正在导入许多不同类型的.csv文件,并且必须创建一个新的存储过程和表,因为这听起来比创建表和使用带有一些传递值的公共过程要费时得多。
我不是sql高手,所以我在c中勾勒出了我需要的:
Table createAndFillTable(string tableName, string[] columnNames, string[] columnTypes, string[] rows)
{
var t = CreateNewTable(tableName);
for(int i = 0; i < columnNames; i++)
{
t.addColumn(columnNames[i], columnTypes[i]);
}
foreach(var r in rows)
{
//Needs parsing to correct data types
t.AddRow(r);
}
return t;
}
例如创建新表,但最佳的解决方案是通过传递2个参数,tablename和filelocation导入到现有表,并让sql处理变量类型等。不知道这是不是更好的解决方案。
先谢谢你!
暂无答案!
目前还没有任何答案,快来回答吧!