什么是 Allow Inprocess :顾名思义,通过选择 Allow Inprocess,SQL Server 允许实例化提供程序或允许提供程序作为 In Process 服务器运行。如果未设置该选项,则默认行为是允许提供程序在 SQL Server 进程之外运行。
出现的问题是在 SQL Server 进程内或 SQL Server 进程外运行进程有什么好处。
在 SQL Server 进程之外运行该进程:
允许提供程序在 SQL Server 进程之外运行有助于保护 SQL Server 进程免受提供程序中的错误的影响,例如当提供程序在 SQL Server 进程之外运行时更新或插入涉及列数据类型,如 (varchar(max)、nvarchar(max )、varbinary(max)、text、ntext 或 image) 是不允许的。
在 SQL Server 进程中运行进程:
通过在 SQL Server 提供程序中设置此选项,我们将能够处理包括长列、图像和文本在内的数据类型,如 (varchar(max)、nvarchar(max)、varbinary(max)、text、ntext 或 image)数据。
什么是 Allow Inprocess :顾名思义,通过选择 Allow Inprocess,SQL Server 允许实例化提供程序或允许提供程序作为 In Process 服务器运行。如果未设置该选项,则默认行为是允许提供程序在 SQL Server 进程之外运行。
出现的问题是在 SQL Server 进程内或 SQL Server 进程外运行进程有什么好处。
在 SQL Server 进程之外运行该进程:
允许提供程序在 SQL Server 进程之外运行有助于保护 SQL Server 进程免受提供程序中的错误的影响,例如当提供程序在 SQL Server 进程之外运行时更新或插入涉及列数据类型,如 (varchar(max)、nvarchar(max )、varbinary(max)、text、ntext 或 image) 是不允许的。
在 SQL Server 进程中运行进程:
通过在 SQL Server 提供程序中设置此选项,我们将能够处理包括长列、图像和文本在内的数据类型,如 (varchar(max)、nvarchar(max)、varbinary(max)、text、ntext 或 image)数据。
对于 excel 数据,我们可以看到,当我们在没有预定义数据类型的情况下将 excel 数据导入数据库表时,默认情况下,某些列的数据类型可能会分配给 nvarchar(max) 或 ntext 等,所以如果我们做 net设置 Allow Inprocess 它会抛出错误。
如果我们没有这样的场景,建议始终保持 SQL Server 的默认设置不变。只有在出现异常的情况下,我们才必须启用该选项。