例如:
SELECT *
FROM Table t
WHERE @key IS NULL OR (@key IS NOT NULL AND @key = t.Key)
Run Code Online (Sandbox Code Playgroud)
如果@key IS NULL的计算结果为true,那么@key IS是否为NULL并且@key = t.Key是否已计算?
如果不是,为什么不呢?
如果是,是否有保证?它是ANSI SQL的一部分还是特定于数据库?
如果是数据库特定的,SqlServer?甲骨文?MySQL的?
参考:短路评估
我做了一点谷歌搜索,发现没有真正的Windows资源SVN挂钩.所以我想我会在这里开始一个wiki来集中它.
如果您贡献,请务必注明:
注意:我怀疑发布一个史诗脚本将没有用.
int x = n / 3; // <-- make this faster
// for instance
int a = n * 3; // <-- normal integer multiplication
int b = (n << 1) + n; // <-- potentially faster multiplication
Run Code Online (Sandbox Code Playgroud) 我想了解社区是否预编译的脉搏.我知道它的冷启动时间更快,并且它隐藏了代码.然而,有一些不好的东西,IMO.也许它的名字,编译网站听起来不正确.
一般来说,您如何部署Web应用程序?
我使用redux和normalizr来规范化服务器的响应,基本上遵循现实世界的例子.这种方式entities
reducer非常简单,只需合并响应即可.我现在遇到的问题是一种delete
操作.我发现这个问题#21 of normalizr repo但仍然无法弄清楚如何解决这个问题.例如,
目前的状态是
{
entities:
product_categories: {
...
13: {
...
products: ["1", "2"], <--------------- [i] Current state
...
}
},
products: {
1: {
id: "1"
}
}
}
Run Code Online (Sandbox Code Playgroud)
标准化的响应是
{
...
product_categories: {
...
13: {
...
products: ["1"], <---------------- [2] Normalized result
}
...
}
Run Code Online (Sandbox Code Playgroud)
如您所见,后端api只返回属于此类别的所有产品ID,在这种情况下,"2"将被分离.当'entities'reducer合并这个响应时,"2"仍然存在.现在我只是重新加载页面,但我想知道是否有更好的方法来处理这种情况?
在entities
reducer中,我只是像现实世界中的例子一样合并它.
return merge({}, state, action.payload.entities);
我们的电源故障耗尽了我们的UPS,随后关闭了我们的SVN机器.当它启动时,系统时间不正确.
不幸的是,直到有些人已经做出改变之后才发现这种情况.所以现在我们有一些修改,比第一次修订早几年.
有没有办法纠正这个日期,所以事情是有序的?
我正在寻找一个体面的.Net国际象棋引擎.如果有一个好的国际象棋现有的,任何建议,一个好的候选人移植到.Net?
有没有办法确定sql代理作业何时在使用sp_start_job启动后完成?
是否可以以允许后续删除/重命名其父文件夹的方式打开文件?
我知道你可以这样做:
File.Open("foo.bar", FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Delete)
Run Code Online (Sandbox Code Playgroud)
这将允许在关闭文件句柄时删除文件.但是,如果它不允许删除父文件夹而没有错误.
我在框架中找不到任何东西.我是否忽略了某些内容,或者是否存在我可以互操作的原生API.
注意:在使用已删除文件的流时,我不在乎是否出现异常.事实上,这将是理想的.
更新:
所以最有希望的想法是Hardlink,但是我无法让它发挥作用.当我尝试删除父目录时,我仍然最终拒绝访问.这是我的代码:
class Program
{
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern bool CreateHardLink(string lpFileName, string lpExistingFileName, IntPtr lpSecurityAttributes);
static void Main(string[] args)
{
string hardLinkPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
string realPath = @"C:\foo\bar.txt";
if (CreateHardLink(hardLinkPath, realPath, IntPtr.Zero))
{
using (FileStream stream = File.Open(hardLinkPath, FileMode.Open, FileAccess.Read, FileShare.Delete | FileShare.ReadWrite))
{
Console.Write("File locked");
Console.ReadLine();
}
File.Delete(hardLinkPath);
}
else
Console.WriteLine("LastError:{0}", Marshal.GetLastWin32Error());
}
}
Run Code Online (Sandbox Code Playgroud) .net ×2
svn ×2
asp.net ×1
c# ×1
chess ×1
deployment ×1
division ×1
interop ×1
log4net ×1
nlog ×1
normalizr ×1
optimization ×1
redux ×1
repository ×1
sql ×1
sql-server ×1
svn-hooks ×1