Tag: sql server

在sql_variant列的表值参数中传递’object’类型的参数

我在SQL Server 2012中有一个表值参数定义为: CREATE TYPE [dbo].[TVP] AS TABLE ( [Id] [int] NOT NULL, [FieldName] [nvarchar](100) NOT NULL, [Value] [sql_variant] NOT NULL ) 我在C#中使用代码看起来大致如下所示: var mdItems = new DataTable(); mdItems.Columns.Add(“Id”, typeof(int)); mdItems.Columns.Add(“FieldName”, typeof(string)); mdItems.Columns.Add(“Value”, typeof(object)); mdItems.Rows.Add(new object[] {2, “blah”, “value”}); //’value’ is usually a string SqlCommand sqlCommand = conn.CreateCommand(); sqlCommand.CommandText = “[WriteFieldValues]”; sqlCommand.CommandType = CommandType.StoredProcedure; sqlCommand.Parameters.AddWithValue(“@FieldValues”, […]

资源池“default”中没有足够的系统内存来运行此查询。 在sql上

我有一个运行服务,每分钟可以获得50-100个查询。 这些都不是高成本的查询。 此服务已运行约3-4个月,没有任何错误。 突然几天前,它开始提供“资源池中没有足够的系统内存’默认’来运行此查询。” 偶尔会出错。 当我调查问题时,我看到sqlservr.exe正在使用~1.5 gb ram和%25的CPU(全部为1 / 4CPU)。 当我重新启动sqlservr.exe ,ram从~50mb开始并慢慢增加直到它变为~1.5gb然后导致使用它的应用程序崩溃。 在我进行了一些研究后,我发现它是由我使用的sql server版本引起的。 这是限制数字的快速版本。 所以我将我的sql server从‘2008r2 express’升级到‘2012 enterprise’ 。 当我启动服务时,我认为我的问题终于结束了,因为服务只使用了~60mb的内存,但不幸的是在一个小时内同样的问题开始发生,但这次我在windows任务管理器上看到的已用内存仍然是~60mb,没有超出任何限制。 我在Wcf服务中使用EntityFramework作为ORM。 SqlQueryNotification ,我有一些缓存操作的SqlQueryNotification (代理和东西)系统。 我错过了一些关键的配置点吗? 或者6GB的内存和我的4 CPU真的不够用吗? 但它不可能是因为同样的负载就像3个月一样,并且当时没有任何错误,并且代码也没有任何变化。

Linq查询的行为不符合预期

我有一个非常简单的linq查询,如下所示: var result = (from r in employeeRepo.GetAll() where r.EmployeeName.Contains(searchString) || r.SAMAccountName.Contains(searchString) orderby r.EmployeeName select new SelectListItem { Text = r.EmployeeName, Value = r.EmployeeName }); 这个问题是出于一些奇怪的原因,它把我搜索的每个人的记录都记录下来,无论是小写还是大写。 即 测试用户 测试用户 测试用户 我会找回正确的记录。 然而,当我使用小写字母搜索我自己的名字时,我没有得到任何结果,但如果我使用我的名字的第一个字母作为大写,那么我得到结果。 我似乎无法弄清楚为什么这样做。 数据库中的每个名字和姓氏都以大写字母开头。 我正在使用的searchString是: richard – 我得到了正确的结果 waidande – 未找到结果 上述两个用户都在数据库中。 我也使用Entity Framework来查询Sql Server 2012 。

如何遍历复杂类型对象列表并传递给调用SQL存储过程的方法

如何遍历对象列表以便将所述对象传递给通过存储过程在SQL db中插入行的方法? 在这个问题的帮助下,我达到了这一点: namespace NA.Controllers { public class NC : ApiController { [Route(“AddNote”)] [HttpPost] public HttpResponseMessage PostNote(List items) { //NoteJson deserializednote = JsonConvert.DeserializeObject(item); //Note notesdata = new Note(item); NotesAccept.Models.INoteRepository Repository = new NotesAccept.Models.NoteDataRepository(); foreach (Note item in items) { item = Repository.Add(item); } var response = Request.CreateResponse<List>(HttpStatusCode.OK, items); return response; } } } 但是现在我被卡住了,因为item=现在是一个迭代变量,但我需要将它传递给一个方法: namespace […]

调用CLR存储过程

简而言之,在哪里可以找到C#/ VB客户端示例代码,它使用某些argumnet [如sqlxml数据]调用CLR存储过程并接收datareader或其他forms的结果? 另外,我如何定期从通过SQlContext.Pipe.Send()方法发送的正在运行的CLR存储过程中接收信息?

SQL CLR等待不执行

我的理解是,当等待从等待返回时,等待完成执行代码的剩余部分。 我试图让它在sql clr中工作,并且这不能用作等待的进程和它下面的代码没有被执行。 在debug方法中,控件只在执行await行后返回。 我怎样才能完成这项工作,因为要求clr在不阻塞主线程的情况下执行,以便其他工作可以在db中继续运行。 我真的需要这个工作,现在已经有2天了。 NB如果方法是同步的,这很有效。 并且存储的proc程序集在sql server中注册为不安全。 我正在使用mssql 2012和visual studio 2015。 public partial class StoredProcedures { [Microsoft.SqlServer.Server.SqlProcedure] public static async void sp_push_stock_update(SqlString transactionPrimaryKey, SqlString transactionType) { using (SqlConnection conn = new SqlConnection(“context connection=true”)) { StockUpdateClient.stock_fetcher _stockFetcher = new StockUpdateClient.stock_fetcher(conn); List skuList = await new System.Threading.Tasks.Task<List>(()=> _stockFetcher.getItems(transactionPrimaryKey, transactionType)); //Code does not get here performLogging(skuList): […]

仅在EF Core中为“true”创建唯一约束

我有一个跟踪记录附件的课程。 每个记录可以有多个RecordAttachments,但是要求每个记录只能有一个标记为IsPrimary RecordAttachment。 public class RecordAttachment { public int Id { get; set; } public int RecordId { get; set; } public string Details { get; set; } public bool IsPrimary { get; set; } public Record Record { get; set; } } 我不能只使用.HasIndex(e => new { e.RecordId, e.IsPrimary }).IsUnique(true)因为每个Record可能有多个false值。 基本上我需要一个RecordId和IsPrimary == true的唯一约束,虽然这不起作用: entity.HasIndex(e => […]

使用iTextSharp打印包含多个表的PDF

我有一份详细的打印账单,可以从各个部门提取账单明细。 我需要将它们打印在PDF上。 但是我使用了大量的选择程序,因为我必须显示很多表,所以我需要可以重用的代码。

如何在SQL BULK COPY中获取Identity值?

我必须从SQLBULKCOPY之后的表中获取IDENTITY值到同一个表。 数据量可能是数千条记录。 有人可以帮我解决这个问题吗?

Sql Server Ce 3.5标识插入

在Sql Server CE中出现了标识列的问题 使用Server Explorer时,在VS2008中,执行以下脚本 SET IDENTITY_INSERT testTable ON; 插入testTable(id,name)值(1,’Something’)SET IDENTITY_INSERT testTable ON; 发送以下消息错误’不支持Set SQL构造或语句。 但然后插入行好吗?!?!?! 无论如何,当我尝试通过C#做同样的事情时,将该脚本作为命令文本,它无法说错误在“插入关键字”中 我理解,对于SQL SERVER CE,该命令当时只接受一个批处理命令,所以在这种情况下我们有三个命令(它可以与完整的SQLServer一起工作)任何想法?