我从不使用递归的CTE.我刚刚读了一篇关于它的文章.本文在Sql server CTE和递归的帮助下显示员工信息.它基本上显示了员工及其经理信息.我无法理解此查询的工作原理.这是查询:
WITH
cteReports (EmpID, FirstName, LastName, MgrID, EmpLevel)
AS
(
SELECT EmployeeID, FirstName, LastName, ManagerID, 1
FROM Employees
WHERE ManagerID IS NULL
UNION ALL
SELECT e.EmployeeID, e.FirstName, e.LastName, e.ManagerID,
r.EmpLevel + 1
FROM Employees e
INNER JOIN cteReports r
ON e.ManagerID = r.EmpID
)
SELECT
FirstName + ' ' + LastName AS FullName,
EmpLevel,
(SELECT FirstName + ' ' + LastName FROM Employees
WHERE EmployeeID = cteReports.MgrID) AS Manager
FROM cteReports
ORDER BY EmpLevel, MgrID
Run Code Online (Sandbox Code Playgroud)
这里我发布有关输出如何显示的信息:

我只需要知道它是如何首先显示管理器然后是循环中的下属.我想第一个sql语句只触发一次,并返回所有员工ID.
第二个查询重复触发,查询当前管理员ID所在的员工所在的数据库. …
我正在尝试检测我正在启动emacs的屏幕大小,并相应地调整它开始的窗口的大小和位置(我猜这是emacs中的框架).我正在尝试设置我的.emacs,以便我总是得到一个"相当大"的窗口,它的左上角靠近屏幕的左上角.
我想这对于一般情况来说是一个很大的问题,所以为了缩小范围,我对Windows和(Debian)Linux上的GNU Emacs 22最感兴趣.
我发现TestCaseNUnit中的功能非常有用,可以快速指定测试参数,而无需为每个测试使用单独的方法.MSTest中有类似的东西吗?
[TestFixture]
public class StringFormatUtilsTest
{
[TestCase("tttt", "")]
[TestCase("", "")]
[TestCase("t3a4b5", "345")]
[TestCase("3&5*", "35")]
[TestCase("123", "123")]
public void StripNonNumeric(string before, string expected)
{
string actual = FormatUtils.StripNonNumeric(before);
Assert.AreEqual(expected, actual);
}
}
Run Code Online (Sandbox Code Playgroud) 这并不意味着巨魔或烈焰或类似的东西.几个月以来我一直在使用Vim作为我的控制台编辑器(在我的终端中编辑配置文件),但我认为我不能忍受我的正常,每天编写Web应用程序的工作我使用GUI文本编辑器(哪一个不重要).
我觉得我的GUI文本编辑器可以完成我工作所需的一切.它有一个像样的搜索/替换与两者的自动完成历史.它具有语法高亮,行编号,选项卡式界面,易于复制和粘贴等.我当前编辑器唯一缺少的是正则表达式匹配,但是有很多GUI文本编辑器可以进行正则表达式搜索/替换.
鉴于我刚才所说的,除了安装在每台计算机上的事实之外,Vim(甚至Emacs)对GUI文本编辑器的生产力优势.我希望在Vim/Emacs上更好/更快的特定任务,或者现有GUI文本编辑器无法实现的特定任务.
如何在SQL中简单地使用行切换列?是否有任何简单的转置命令?
即转此结果:
Paul | John | Tim | Eric
Red 1 5 1 3
Green 8 4 3 5
Blue 2 2 9 1
Run Code Online (Sandbox Code Playgroud)
进入这个:
Red | Green | Blue
Paul 1 8 2
John 5 4 2
Tim 1 3 9
Eric 3 5 1
Run Code Online (Sandbox Code Playgroud)
PIVOT 这种情况看起来太复杂了.
我通过编写代码而不是使用GUI在Microsoft SQL Server 2000中创建一个新表,我正在尝试学习如何"手动方式".
这是我实际使用的代码,它工作正常:
CREATE TABLE "attachments"
(
"attachment_id" INT NOT NULL,
"load_date" SMALLDATETIME NOT NULL,
"user" VARCHAR(25) NOT NULL,
"file_name" VARCHAR(50) NOT NULL,
CONSTRAINT "pk_attachments" PRIMARY KEY ("attachment_id"),
CONSTRAINT "fk_users" FOREIGN KEY ("user") REFERENCES "users" ("user"),
CONSTRAINT "ch_load_date" CHECK ("load_date" < GETDATE())
)
Run Code Online (Sandbox Code Playgroud)
我已经自己指定了主键,外键和检查约束,因为这样我可以为它们定义一个名称,否则将它们声明为内联会使SQL Server生成一个随机名称,而我并不"喜欢"它.
当我尝试声明默认值约束时出现问题:查看Internet上的信息以及Microsoft SLQ Server Management Studio如何创建它,我了解它可以内联和单独创建:
"load_date" SMALLDATETIME NOT NULL DEFAULT GETDATE()
Run Code Online (Sandbox Code Playgroud)
要么
CONSTRAINT "df_load_date" DEFAULT GETDATE() FOR "load_date"
Run Code Online (Sandbox Code Playgroud)
内联方法工作正常,但它像往常一样为constaint生成一个随机名称,独立方法抛出错误,说Incorrect syntax near 'FOR'..
此外,如果我创建表然后ALTER它,该命令工作:
ALTER TABLE "attachments"
ADD CONSTRAINT "df_load_date" …Run Code Online (Sandbox Code Playgroud) 在使用LINQ to SQL连接(针对SQL Server Compact Edition)更新一些属性后,在向DataContext执行SubmitChanges时,我得到"未找到或更改行".ChangeConflictException.
var ctx = new Data.MobileServerDataDataContext(Common.DatabasePath);
var deviceSessionRecord = ctx.Sessions.First(sess => sess.SessionRecId == args.DeviceSessionId);
deviceSessionRecord.IsActive = false;
deviceSessionRecord.Disconnected = DateTime.Now;
ctx.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
该查询生成以下SQL:
UPDATE [Sessions]
SET [Is_Active] = @p0, [Disconnected] = @p1
WHERE 0 = 1
-- @p0: Input Boolean (Size = 0; Prec = 0; Scale = 0) [False]
-- @p1: Input DateTime (Size = 0; Prec = 0; Scale = 0) [9/4/2008 5:12:02 PM]
-- Context: SqlProvider(SqlCE) Model: AttributedMetaModel Build: 3.5.21022.8
Run Code Online (Sandbox Code Playgroud)
显而易见的问题是WHERE 0 …
我从Windows Azure开始.我有一个与Microsoft的Azure帐户,并希望从我的Visual Studio项目中使用它
在Azure管理门户中,我可以看到主访问密钥和辅助访问密钥.但是Visual Studio需要帐户名和帐户密钥.
这些是相关的还是我错过了什么?如果是这样,我如何从Azure管理门户获取我的帐户名和帐户密钥?
我有一个ASP.Net MVC项目,我想实现捆绑,但一切我可以在互联网上找到指引我开BundleConfig.cs的App_Start-但是这个文件不在我的项目存在.我只有三个文件夹中的文件:FilterConfig,RouteConfig和WebApiConfig.
我创建解决方案时没有生成Bundle配置(IIRC在开始时它是一个空白的ASP.NET MVC项目).
看起来这应该很容易做到,但我只是简单无法弄明白.
PS只是为那些不仔细阅读的人澄清,这是针对从头开始创建的MVC4/.Net 4.5应用程序.解决方案标记如下.
我想将字节数组转换为图像.
这是我获取字节数组的数据库代码:
public void Get_Finger_print()
{
try
{
using (SqlConnection thisConnection = new SqlConnection(@"Data Source=" + System.Environment.MachineName + "\\SQLEXPRESS;Initial Catalog=Image_Scanning;Integrated Security=SSPI "))
{
thisConnection.Open();
string query = "select pic from Image_tbl";// where Name='" + name + "'";
SqlCommand cmd = new SqlCommand(query, thisConnection);
byte[] image =(byte[]) cmd.ExecuteScalar();
Image newImage = byteArrayToImage(image);
Picture.Image = newImage;
//return image;
}
}
catch (Exception) { }
//return null;
}
Run Code Online (Sandbox Code Playgroud)
我的转换代码:
public Image byteArrayToImage(byte[] byteArrayIn)
{
try
{
MemoryStream ms = new MemoryStream(byteArrayIn,0,byteArrayIn.Length);
ms.Write(byteArrayIn, 0, …Run Code Online (Sandbox Code Playgroud) emacs ×2
sql-server ×2
t-sql ×2
.net ×1
arrays ×1
asp.net-mvc ×1
azure ×1
byte ×1
bytebuffer ×1
c# ×1
constraints ×1
default ×1
elisp ×1
linq ×1
linq-to-sql ×1
mstest ×1
nunit ×1
pivot ×1
rowtest ×1
sql ×1
testcase ×1
text-editor ×1
vim ×1