我正在商业智能工作室开发一份报告,但我丢失了我的数据集.窗格靠近工具箱,它已经消失了.我应该重新打开的窗格的名称是什么?
我知道sp_msforeachtable
允许对所有表执行查询.
我有100个表,我想在97个表上执行相同的查询.
我正在使用此查询: EXEC sp_MSForEachTable "DELETE FROM ?"
是否可以排除某些表格?
假设我有这个:
Regex.Replace("aa cc bbbb","aa cc","",RegexOptions.IgnoreCase);
Run Code Online (Sandbox Code Playgroud)
但我也需要忽略空格.所以,我找到了一个选项IgnorePatternWhitespace
,但是如何在一个regex.Replace中添加几个选项呢?
就像是:
Regex.Replace("aa cc bbbb", "aa cc", "",
RegexOptions.IgnoreCase + RegexOptions.IgnorePatterWhitespace);
Run Code Online (Sandbox Code Playgroud)
更新:
感谢您的回答,但此选项似乎不起作用:这是一个测试示例:
Regex.Replace("aa cc bbbb", "aacc", "",
RegexOptions.IgnoreCase | RegexOptions.IgnorePatterWhitespace);
Run Code Online (Sandbox Code Playgroud) 好吧,我有一个经典的asp应用程序,我有一个连接字符串,试图连接到数据库.
MY连接字符串如下所示:
Provider=SQLOLEDB;Data Source=MYPC\MSSQLSERVER;Initial
Catalog=mydb;database=mydb;User Id=me;Password=123
Run Code Online (Sandbox Code Playgroud)
现在,当我通过front-en访问数据库时,我收到此错误:
Microsoft OLE DB Provider for SQL Server error '80040e4d'
Login failed for user 'me'.
Run Code Online (Sandbox Code Playgroud)
我查看了sql profiler,我得到了这个:
Login failed for user 'me'. Reason: Password did not match that
for the login provided. [CLIENT: <named pipe>]
Error: 18456, State:8.
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
alter login me with check_policy off
甚至不知道我为什么这样做)更新:4.我尝试过这个连接字符串: Provider=SQLOLEDB;Data Source=MYPC\MSSQLSERVER;Initial Catalog=mydb;database=mydb; Integrated Security = SSPI
我收到了这个错误:
用于SQL Server的Microsoft OLE DB提供程序错误"80004005"无法打开登录请求的数据库mydb.登录失败.
我有一个包含带占位符的文本字段的表.像这样的东西:
Row Notes
1. This is some notes ##placeholder130## this ##myPlaceholder##, #oneMore#. End.
2. Second row...just a ##test#.
Run Code Online (Sandbox Code Playgroud)
(此表平均包含大约1-5k行.一行中的平均占位符数为5-15).
现在,我有一个如下所示的查找表:
Name Value
placeholder130 Dog
myPlaceholder Cat
oneMore Cow
test Horse
Run Code Online (Sandbox Code Playgroud)
(查找表将包含10k到100k记录的任何内容)
我需要找到从字符串到查找表将这些占位符连接起来并用值替换的最快方法.所以,我的结果应该是这样的(第1行):
这是一些注释狗这只猫,牛.结束.
我想出的是为每个占位符将每一行拆分为多个,然后将其连接到查找表,然后将记录连接到具有新值的原始行,但平均需要大约10-30秒.
我有以下表结构:
dbo.Owner
OwnerID OwnerName
1 John
2 Marie
3 Alex
Run Code Online (Sandbox Code Playgroud)
和dbo.Pet
PetID PetTag Status OwnerID
1 A341 Active 1
2 A342 Inactive 1
3 A343 Active 2
4 A345 Active 2
Run Code Online (Sandbox Code Playgroud)
我需要归还所有只有活动宠物或没有宠物的主人.
所以在上面这个例子中,我需要返回所有者2(所有宠物都有效)和所有者3(没有宠物)
我将使用Entity Framework在C#中提取数据,但是纯SQL就足够了.
这是我到目前为止所提出的:
select mi.* from Owner o
join Pet p
on o.OwnerID= p.OwnerID
where o.Status='Active'
union select * from Owner
where OwnerID not in (select OwnerID from Pet)
Run Code Online (Sandbox Code Playgroud)
现在,上面的这个查询有效但它包含OwnerID = 1.而且我想知道是否有一种方法可以在没有union的1个查询中执行此操作.
我需要从Owner表中找到每个宠物的正确拥有者
为了正确地将每个宠物与所有者匹配,我需要使用一个特殊的匹配表,如下所示:
因此,对于PetID = 2的宠物,我需要找到一个基于三个字段匹配的所有者:
Pet.Zip = Owner.Zip
and Pet.OwnerName = Owner.Name
and Pet.Document = Owner.Document
Run Code Online (Sandbox Code Playgroud)
在我们的示例中,它将像这样工作:
select top 1 OwnerID from owners
where Zip = 23456
and Name = 'Alex'
and Document = 'a.csv'
Run Code Online (Sandbox Code Playgroud)
如果找不到OwnerID,则需要根据2个字段进行匹配(不使用优先级最高的字段)
在我们的例子中:
select top 1 OwnerID from owners where
Name = 'Alex'
and Document = 'a.csv'
Run Code Online (Sandbox Code Playgroud)
由于没有找到记录,我们需要匹配较少的字段.在我们的例子中:
select top 1 OwnerID from owners where Document = 'a.csv'
Run Code Online (Sandbox Code Playgroud)
现在,我们找到了OwnerID = 6的所有者.
现在我们需要更新ownerID = 6的宠物,然后我们可以处理下一个宠物.
我现在唯一能做到这一点的方法是循环或游标+动态SQL.
是否有可能在没有循环+动态sql的情况下实现这一点?也许STUFF + Pivot不知何故?
sql小提琴:http://sqlfiddle.com/#!18/10982/1/0
样本数据:
create table …
Run Code Online (Sandbox Code Playgroud) 这个问题的存在只是因为纯粹的好奇心.不是作业.
找到在数组1..n中找到两个缺失数字的最快方法
所以,在一篇相关的文章中:在一组数字中找到缺失数字的最快方法 我发现你可以通过总结和减去总数来快速完成.
但是2个数字怎么样?
所以,我们的选择是:
还要别的吗?可能有O(n)解决方案吗?我在其中一个网站的ruby部分找到了这个,但是考虑了任何语言(除非语言有一些特定的东西)
我在这里找到了这个片段:
public static T DeepClone<T>(this T obj)
{
using (var ms = new MemoryStream()) {
var bf = new BinaryFormatter();
bf.Serialize(ms, obj);
ms.Position = 0;
return (T)bf.Deserialize(ms);
}
}
Run Code Online (Sandbox Code Playgroud)
这说明我们可以通过这个东西对所有相关对象进行深层复制.
我正在尝试这样的副本:
db.Detach(myEntity);
myEntity.EntityKEy = null;
Entity newEntity = new Entity();
newEntity = DeepClone<Entity>(Entity);
db.Entities.AddObject(newEntity);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
它可以工作,但仍然不会复制任何嵌套的\相关记录.我在这做错了什么?
我有这个结构Entity-> ChildEntity - > ChildChildEntity
- > - one-to-many
所以我假设当我复制实体时它也会复制所有子记录.
更新: 建议之后,我这样做了:
Entity newEntity = new Entity();
Eneity Entity = db.Include("ChildEntity").Where(p=>p.Id==Id).Single();
newEntity = DeepClone<Entity>(Entity);
db.Detach(myEntity);
myEntity.EntityKEy = null;
db.Entities.AddObject(newEntity);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
在AddObject行上获取异常:
ObjectStateManager中已存在具有相同键的对象.ObjectStateManager无法使用相同的键跟踪多个对象.
在visual studio中,当在标记中创建控件时(或在代码隐藏中),您可以指定HEX格式的颜色,如:"#FFFFFF",但您也可以从预设颜色列表中进行选择,如:白色,小麦,窗口等等(见截图).
是否可以扩展该列表并添加其他颜色?
sql-server ×5
c# ×4
sql ×4
.net ×1
.net-4.0 ×1
algorithm ×1
asp-classic ×1
asp.net ×1
asp.net-4.5 ×1
regex ×1
ruby ×1
t-sql ×1