问题标签 [sqlclr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linq - 如何在 SQL CLR 中添加 Linq 支持
据我了解,SQL Server 2008 支持(或将支持)System.Core.dll 和 System.Xml.Linq.dll。
我正在尝试在我的 SQL 2008 CLR 项目中使用 Linq to Objects。
我将如何“添加”/注册这些 dll?(我不能将它们添加为参考)
提前致谢, 奥利
sql - 是否可以在 SQL Server 中使用 CLR 代码创建新的 T-SQL 运算符?
我有一个非常简单的 CLR 函数来进行正则表达式匹配
它允许我写一个类似的 SQL 语句。
我只是认为重新制定该查询会很好,因此可以将其称为
是否可以使用 CLR 代码创建新的比较运算符。(我从网上的短暂浏览中猜测答案是否定的,但问没有害处)
c# - SQLCLR 和 DateTime2
使用 SQL Server 2008、Visual Studio 2005、带有 SP2 的 .net 2.0(支持新的 SQL Server 2008 数据类型)。
我正在尝试编写一个 SQLCLR 函数,该函数将 DateTime2 作为输入并返回另一个 DateTime2。例如:
现在,上面的编译很好。我希望这些 SqlDateTimes 映射到 SQL Server 的 DateTime2,所以我尝试运行这个 T-SQL:
这给出了以下错误:
消息 6551,级别 16,状态 2,过程 f_UTCToLocalDT,第 1 行“f_UTCToLocalDT”的 CREATE FUNCTION 失败,因为返回值的 T-SQL 和 CLR 类型不匹配。
使用 DATETIME(而不是 DATETIME2)可以正常工作。但我宁愿使用 DATETIME2 来支持提高的精度。我做错了什么,还是 SQLCLR 不(完全)支持 DateTime2 ?
sql-server-2008 - 是否可以通过 T-SQL 查询来确定存储过程是基于 CLR 还是基于常规 T-SQL?
大家好。我正在集成一个基于 CLR/Assembly 的 sproc 替换现有的存储在我们的生产数据库中,我想编写一个更新脚本,它只删除旧的基于 T-SQL 的脚本而不删除新的如果它已经在那里。那可能吗?
c# - SQL Server:如何将存储在 varbinary(max) 字段中的文件(pdf、doc、txt...)复制到 CLR 存储过程中的文件中?
我问这个问题作为这个问题的后续。
这里发布了一个使用 bcp 和 xp_cmdshell 的解决方案,这不是我想要的解决方案。
我是 c# 的新手(因为我是 Delphi 开发人员)无论如何我都能够按照教程创建一个简单的 CLR 存储过程。
我的任务是将文件从客户端文件系统移动到服务器文件系统(可以使用远程 IP 访问服务器,所以我不能使用共享文件夹作为目标,这就是我需要 CLR 存储过程的原因)。
所以我打算:
- 从 Delphi 将文件存储在临时表的 varbinary(max) 列中
- 调用 CLR 存储过程,使用 varbinary(max) 字段中包含的数据在所需路径创建文件
想象一下,我需要将 C:\MyFile.pdf 移动到 Z:\MyFile.pdf,其中 C: 是本地系统上的硬盘,Z: 是服务器上的硬盘。C 在纽约,Z 在伦敦,它们之间没有 VPN,只有 https 连接。
我提供下面的代码(不工作)有人可以修改以使其工作?在这里,我假设有一个名为 MyTable 的表,其中包含两个字段:ID (int) 和 DATA (varbinary(max))。请注意,如果该表是一个真正的临时表或只是一个我临时存储数据的表,这并没有什么区别。如果有一些异常处理代码,我将不胜感激(这样我就可以管理“无法保存文件”异常)。
我希望能够编写一个新文件或覆盖该文件(如果已经存在)。
(一个子问题是:这种方法是否正确或者有一种方法可以直接将数据传递给 CLR 存储过程,所以我不需要使用临时表?)
如果子问题的答案是否定的,您能描述一下避免使用临时表的方法吗?那么有没有比我上面描述的更好的方法(=临时表+存储过程)?一种将数据流从客户端应用程序直接传递到 CLR 存储过程的方法?(我的文件可以是任意大小,但也可以很大)
.net - .NET 框架执行在执行 CLR 存储过程时中止?
我构建了一个与 SQL Server 2008 等效的存储过程FOR XML AUTO
。现在我正在测试它,它给了我一个非常无用的错误消息。这个错误是什么意思?
sql - 删除后触发器仅在删除后触发?
我认为“删除后”意味着直到删除已经发生后才会触发触发器,但这是我的情况......
在 C# 中删除触发器后,我制作了 3 个几乎相同的 SQL CLR,它运行了大约一个月。突然,三个中的一个在运行自动删除工具时停止工作。
通过停止工作,我的意思是,无法通过客户端软件从表中删除记录。禁用触发器导致允许删除,但重新启用它会干扰删除能力。
所以我的问题是“怎么会是这样?” 是否有可能使用它的工具弄乱了内存?似乎即使触发器抛出了异常,如果它是在删除之后,记录不应该消失吗?
所有触发器看起来都是这样的:
CLR 触发器执行一次选择和一次插入到另一个数据库。我还不知道 SQL Server Mgmt Studio 是否有任何错误,但我会在发现后更新问题。
更新:
好吧,在重新执行上面相同的触发代码之后,一切都会再次运行,所以我可能永远不知道如果 SSMS 出现任何错误会发生什么。
此外,触发器代码中的任何地方都没有调用回滚。
.net - SQLCLR 使用错误版本的 .NET Framework
在最近重新启动我们的开发服务器期间,SQL Server
开始使用.NET 4.0
SQLCLR。这意味着在 SQL 中使用 CLR 没有任何效果,或者至少这是我通过阅读这些来源的理解:
http://software.intel.com/en-us/blogs/2009/10/16/sql-server-2008-sqlclr-net-framework-version/
www.sqlskills.com/BLOGS/BOBB/post/On-SQL-Server-and-NET-40.aspx
我们得到的只是这种类型的错误消息:
消息 6517,级别 16,状态 1,第 1 行无法创建 AppDomain“xxx.dbo[ddl].3”。方法的类型签名与互操作不兼容。
运行语句(由@john-christensen 建议)
产生以下信息:
有谁知道如何解决这个问题,或者我们如何强制 SQL Server CLR 使用较早版本的框架?
sql-server - Passing huge amounts of data as an hexadecimal (0x123AB...) parameter of a clr stored procedure in sql server
I post this question has followup of This question, since the thread is not recieving more answers.
I'm trying to understand if it is possible to pass as a parameter of a CLR stored procedure a large amount of data as "0x5352532F...".
This is to avoid to send the data directly to the CLR stored procedure, instead of sending ti to a temporary DB field and from there passing it as varbinary(max) parmeter to the CLR stored procedure.
I have a triple question:
1) is it possible, if yes how? Let's say i want to pass a pdf file to the CLR stored procedure (not the path, the full bits that make up the file). Something like:
where insertfile is a stored proc that writes to the server path (at file_remote_path) the binary data I pass as (file_contents).
2) is it there corruption risk of adopting this approach (or it is the same approach that sql server uses behind the scenes)?
3) how to convert the content of a file into the "0x23423..." hexadecimal representation
.net - 如何在 CLR 存储过程中使用实体框架?
我期待将所有逻辑(作为操作 Entity Framework 4 对象实现)移动到服务器端。它看起来很简单(由于应用程序结构)和有益的(因为我只有一台旧笔记本电脑作为客户端和一台运行 SQL Server 2008 的坚固服务器,并且为逻辑构建单独的服务只会引入更多延迟如果与在数据库中执行此操作相比)。
那么如何在 CLR 存储过程中正确使用实体框架并使用主机服务器提供的 SqlContext 来实现呢?
突然我在网上找不到任何例子。看起来还没有人吃过这个。这是否意味着这项任务很荒谬,我绝对不应该这样做?使用 T-SQL 和直接访问表而不是 EF 类不是很方便,因为我的模型大量使用继承,并且具有非常复杂的表类型结构,其中包含许多非常简单的表。