Tag: sql server 2008

无法访问存储过程中的表变量

我以这种方式将数据表从Code传递给存储过程。 DataTable table = CommonFunctions.ToDataTable(request); object[] spParams = new object[1]; spParams[0] = table; DbCommand dbCommand = db.GetStoredProcCommand(“OS_UpdateOrgStructureDetails”, spParams); 我试图在存储过程中访问此参数。 CratePROCEDURE OS_UpdateOrgUnits @table OS_RenameNodeTable READONLY AS BEGIN UPDATE OrgUnit SET DetailName = ut.NewValue FROM @table ut INNER JOIN OrgUnit ou ON ou.OrgUnitID = ut.OrgUnitID END 但是当调用存储过程时,它会抛出错误。 The incoming tabular data stream (TDS) remote procedure call (RPC) […]

在SQL Server Management Studio中创建一个新菜单项

是否可以在SQL Server 2008 Management Studio中创建新的菜单项? 例如,当您右键单击数据库时,将显示一个选项列表(新数据库,新查询…)。 是否可以在该列表中添加新项目并在单击该按钮时实现一些C#function?

使用Enterprise库将数据插入SQL Server数据库的代码

我是C#Windows应用程序编码和使用企业库的新手。 我想使用Enterprise Library 4.1将记录插入SQL Server 2008数据库 我在SQLCommand和DBCommand之间混淆了哪一个使用以及何时使用。

将表作为参数传递给SQLCLR TV-UDF

我们有一个第三方DLL可以在DataTable上运行源信息并生成一些有用的值,我们试图通过SQLCLR将其连接起来,以便在SQL Server 2008中作为表值UDF进行调用。 将这个概念更进一步,我想编写一个CLR表值函数 ,它对来自DB的源数据表进行操作。 我很确定我理解在T-SQL方面需要做些什么; 但是, .NET(C#)代码中的方法签名应该是什么样的? “来自SQL Server的表数据?”的参数数据类型是什么? 例如 /* Setup */ CREATE TYPE InTableType AS TABLE (LocationName VARCHAR(50), Lat FLOAT, Lon FLOAT) GO CREATE TYPE OutTableType AS TABLE (LocationName VARCHAR(50), NeighborName VARCHAR(50), Distance FLOAT) GO CREATE ASSEMBLY myCLRAssembly FROM ‘D:\assemblies\myCLR_UDFs.dll’ WITH PERMISSION_SET = EXTERNAL_ACCESS GO CREATE FUNCTION GetDistances(@locations InTableType) RETURNS OutTableType AS […]

线程和SqlFileStream。 该进程无法访问指定的文件,因为它已在另一个事务中打开

我正在提取SQL文件表中的文件的内容。 如果我不使用Parallel,以下代码可以正常工作。 我同时读取sql文件流(并行)时遇到以下exception。 该进程无法访问指定的文件,因为它已在另一个事务中打开。 TL; DR: 在Parallel.ForEach中从FileTable读取文件(使用GET_FILESTREAM_TRANSACTION_CONTEXT)时,我得到上述exception。 示例代码供您试用: https://gist.github.com/NerdPad/6d9b399f2f5f5e5c6519 更长版本: 获取附件,并提取内容: var documents = new List(); using (var ts = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { var attachments = await dao.GetAttachmentsAsync(); // Extract the content simultaneously // documents = attachments.ToDbDocuments().ToList(); // This works Parallel.ForEach(attachments, a => documents.Add(a.ToDbDocument())); // this doesn’t ts.Complete(); } DAO读取文件表: public async Task<IEnumerable> GetAttachmentsAsync() { […]

在表更新时,触发我的.NET代码中的操作

我想知道这是否可行。 当更新特定表中的值时,我们希望函数在我们的.NET代码中工作。 这可以是记录插入或更新。 这可能吗? 如果没有,是否有替代流程?

我可以请求SQL Server缓存某个结果集吗?

从ASP .NET页面调用某个查询。 我在Management Studio中研究了该查询的执行计划,87%用于排序。 我非常需要排序,否则显示的数据将毫无意义。 无论如何,我是否可以请求SQL Server缓存已排序的结果集,以便在后续运行中更快地返回数据? 或者SQL Server是否足够智能来执行缓存处理,如果可能的话,我试图强制它缓存结果我是否犯了错误? 任何相关信息将受到高度赞赏,并提前感谢:) 更新: 我刚刚在一篇文章中读到,使用聚簇索引创建View会提高性能,因为索引会将视图中的数据保留到磁盘中。 这是真的? 我该如何做到这一点? 有文章吗?

在ORDER BY子句中阻止SQL注入

在我们的数据库访问层中,我们有一些动态查询创建。 例如,我们有以下方法来构建ORDER BY子句的一部分: protected string BuildSortString(string sortColumn, string sortDirection, string defaultColumn) { if (String.IsNullOrEmpty(sortColumn)) { return defaultColumn; } return String.Format(“{0} {1}”, sortColumn, sortDirection); } 问题是, sortColumn和sortDirection都来自外部作为字符串,所以当然应该采取措施来防止可能的注入攻击。 有没有人知道如何做到这一点?

使用带有entity framework的.Net MVC3将文件存储在SQL Server数据库中

我想在SQL Server中存储和检索文件。 我的基础设施是: SQL Server 2008 带有entity framework的C#.Net MVC3。 请帮我解决一下我必须在SQL Server和C#文件上使用的数据类型。 如果可能存储文件而不刷新更接近我的要求的页面。 谢谢。

SQL Server通信协议问题

我正在使用VSTS 2008 + C#+ ADO.Net + SQL Server 2008.我对SQL Server 2008将使用哪种通信协议的问题,我的问题的更多细节, 如果连接字符串如下所示,是使用命名管道还是TCP / IP? 是否会使用不同的通信协议取决于客户端和SQL Server是否在同一台机器上? Data Source = labtest1; Initial Catalog = CustomerDB; Trusted_Connection = true;异步 在SQL Server配置管理器中,有一些项称为“SQL Server网络配置”和“SQL Native Client 10.0配置”。 我发现它们都有命名管道或TCP / IP的配置选项(用于通信协议),“SQL Server网络配置”和“SQL Native Client 10.0配置”之间有什么区别?