我正在评估SQLite数据库是否符合我的要求。SQLite支持存储过程吗?如果是,那么有什么限制?SQLite是否支持该范围?
sbdsn5lh1#
不,它不是。请参阅主站点上的Appropriate Uses For SQLite。
8wtpewkr2#
在数据库中存储procs的一个关键原因是,您在与SQL引擎相同的进程中执行SP代码。这对于设计为作为网络连接服务工作的数据库引擎来说是有意义的,但SQLite的必要性要小得多。鉴于它在当前进程中作为DLL运行,因此在客户端语言中实现SP更有意义。但是,您可以使用您自己的主机语言(PHP、Python、Perl、C#、Javascript、Ruby等)中的user defined functions扩展SQLite。
laawzig23#
如果你真的想在数据库中存储SQL代码(例如当你想开发跨平台应用程序时),你可以创建一个特定的表来存储执行该操作的原始SQL命令,然后在客户端中获取SQL命令。
var myString = db.CreateCommand("SELECT SqlColumn FROM tablewithsqlcommands WHERE Procname=theprocedureIwant").ExecuteScalar();
然后在第二步中执行
var myResult = db.CreateCommand(myString).whatever_execution_method_you_need();
3条答案
按热度按时间sbdsn5lh1#
不,它不是。请参阅主站点上的Appropriate Uses For SQLite。
8wtpewkr2#
在数据库中存储procs的一个关键原因是,您在与SQL引擎相同的进程中执行SP代码。这对于设计为作为网络连接服务工作的数据库引擎来说是有意义的,但SQLite的必要性要小得多。鉴于它在当前进程中作为DLL运行,因此在客户端语言中实现SP更有意义。
但是,您可以使用您自己的主机语言(PHP、Python、Perl、C#、Javascript、Ruby等)中的user defined functions扩展SQLite。
laawzig23#
如果你真的想在数据库中存储SQL代码(例如当你想开发跨平台应用程序时),你可以创建一个特定的表来存储执行该操作的原始SQL命令,然后在客户端中获取SQL命令。
然后在第二步中执行