小编Sch*_*zIT的帖子

如何在SQL Server中创建外键?

我从来没有为SQL Server"手动编码"对象创建代码,并且外键修改在SQL Server和Postgres之间看似不同.这是我的sql到目前为止:

drop table exams;
drop table question_bank;
drop table anwser_bank;

create table exams
(
    exam_id uniqueidentifier primary key,
    exam_name varchar(50),
);
create table question_bank
(
    question_id uniqueidentifier primary key,
    question_exam_id uniqueidentifier not null,
    question_text varchar(1024) not null,
    question_point_value decimal,
    constraint question_exam_id foreign key references exams(exam_id)
);
create table anwser_bank
(
    anwser_id           uniqueidentifier primary key,
    anwser_question_id  uniqueidentifier,
    anwser_text         varchar(1024),
    anwser_is_correct   bit
);
Run Code Online (Sandbox Code Playgroud)

当我运行查询时,我收到此错误:

消息8139,级别16,状态0,行9外键中的引用列数与引用列的数量不同,表'question_bank'.

你能发现错误吗?

sql t-sql sql-server

240
推荐指数
9
解决办法
44万
查看次数

错误:"INSERT EXEC语句不能嵌套." 和"不能在INSERT-EXEC语句中使用ROLLBACK语句." 怎么解决这个?

我有三个存储过程Sp1,Sp2Sp3.

第一个(Sp1)将执行第二个(Sp2)并保存返回的数据@tempTB1,第二个将执行第三个(Sp3)并将数据保存到@tempTB2.

如果我执行Sp2它将工作,它将返回我的所有数据Sp3,但问题在于Sp1,当我执行它时,它将显示此错误:

INSERT EXEC语句不能嵌套

我试图改变它的位置,execute Sp2它显示另一个错误:

无法在INSERT-EXEC语句中使用ROLLBACK语句.

sql-server code-reuse sql-server-2008

88
推荐指数
7
解决办法
16万
查看次数

在数组中查找缺失数字的最快方法

我有一个从1到100(包括两者)的数字数组.数组的大小为100.数字随机添加到数组中,但数组中有一个随机空插槽.找到该插槽的最快捷方式是什么,以及插入插槽的数量是多少?Java解决方案更可取.

java arrays algorithm

67
推荐指数
7
解决办法
24万
查看次数

将列索引转换为Excel列名

给定列的索引,如何获得Excel列名?

问题是棘手比它听起来,因为它只是基地-26.列不像普通数字那样换行.即使是Microsoft支持示例也不会扩展到ZZZ之外.

免责声明:这是我之前做过的一些代码,它今天再次遇到了我的桌面.我认为值得在这里发布作为预先回答的问题.

.net excel

12
推荐指数
4
解决办法
3万
查看次数

如果A,B,C上有索引,A,B上的索引是多余的吗?

作为一名DBA拥有多年经验,我相信我知道这个问题的答案,但我认为检查我的基础绝对不会受到伤害.

使用SQL Server,假设我有这对列索引的表A和列B,并在列第二指标A,B以及C,那会是安全的,下降的第一指标,作为第二指标基本上都会满足,将受益查询第一个指数?

sql sql-server indexing

12
推荐指数
3
解决办法
632
查看次数

"无法将'System.Net.Http.Formatting.JsonContractResolver'类型的对象强制转换为'Newtonsoft.Json.Serialization.DefaultContractResolver'."

我们有一个最近被移动到新服务器的WEB API项目.在对其有效负载进行一些添加之后,我正在运行我的项目,但它突然抛出以下错误:

无法将"System.Net.Http.Formatting.JsonContractResolver"类型的对象强制转换为"Newtonsoft.Json.Serialization.DefaultContractResolver".

有问题的代码行在global.asax中:

  protected void Application_Start() {
        GlobalConfiguration.Configure(WebApiConfig.Register);

        var serializerSettings =
         GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings;
        var contractResolver =
           (DefaultContractResolver)serializerSettings.ContractResolver;
           contractResolver.IgnoreSerializableAttribute = true;
     }
Run Code Online (Sandbox Code Playgroud)

我相信这段代码是因为API的默认输出是XML而添加的,我们需要它来代替JSON.

突出显示(DefaultContractResolver)会显示一个工具提示,指示它的引用NewtonSoft.JSon.Serialization.DefaultContractResolver.突出显示serializersettings.ContractResolver引用IContractResolver JSonSerializerSettings.ContractResolver.

代码已经在这台机器上存在了一段时间,我认为我唯一能改变的是安装更新版本的.NET.

什么可能导致这行代码突然抛出错误?我该如何解决?

谢谢!

编辑:根据评论中的请求,我的序列化代码包含如下内容:

json += "{\"employeename\": \"" + Convert.ToString(reader["Employee"])
+ "\"},";

return JsonConvert.DeserializeObject<OrgChartModel>(json);
Run Code Online (Sandbox Code Playgroud)

Edit2:我们现在正在运行.NET 4.5.据我所知,我们之前跑过4.2,但看到它已经过了几个月,我无法确定.

根据Dominick的评论,我尝试将强制转换为DefaultContractResolver更改为:

            var contractResolver =
          (IContractResolver)serializerSettings.ContractResolver;
Run Code Online (Sandbox Code Playgroud)

但是,这会在API中返回以下错误:

{"Message":"The requested resource does not support http method 'GET'."}

c# json.net

12
推荐指数
2
解决办法
450
查看次数

如何根据说明结果改进此查询

我有以下查询:

SELECT DISTINCT f1.match_static_id,
                f2.comments_no,
                f2.maxtimestamp,
                users.username,
                users.id,
                matches_of_comments.localteam_name,
                matches_of_comments.visitorteam_name,
                matches_of_comments.localteam_goals,       
                matches_of_comments.visitorteam_goals,
                matches_of_comments.match_status,
                new_iddaa.iddaa_code
FROM comments AS f1
INNER JOIN (
             SELECT match_static_id,
                    MAX( TIMESTAMP ) maxtimestamp,
                    COUNT( match_static_id ) AS comments_no
             FROM comments
             GROUP BY match_static_id
          ) AS f2 ON f1.match_static_id = f2.match_static_id 
                  AND f1.timestamp = f2.maxtimestamp
INNER JOIN users ON users.id = f1.user_id
INNER JOIN matches_of_comments ON matches_of_comments.match_id = f2.match_static_id
LEFT JOIN new_iddaa ON new_iddaa.match_id = matches_of_comments.match_id
WHERE matches_of_comments.flag =1
ORDER BY f2.maxtimestamp DESC
Run Code Online (Sandbox Code Playgroud)

这是该查询的EXPLAIN计划:

+----+-------------+---------------------+--------+-----------------------------------+-----------+---------+------------------------------------------+-------+------------------------------------------------+
| id …
Run Code Online (Sandbox Code Playgroud)

php mysql sql performance

7
推荐指数
1
解决办法
436
查看次数

为什么JsonResult会产生500个内部服务器错误?

我试图从我的Microsoft SQL Server数据库中检索一个值.它是一个可以为空的"位".

要检索的代码

[HttpGet]
public JsonResult WishesVisit()
{
    int firmaid = SessionExtensions.GetFirmaId(Session);
    var firma = db.Firma.Where(x => x.firma_id == firmaid).FirstOrDefault();

    if (firma != null)
    {
        if (firma.oensker_besog != null)
        {
            if ((bool)firma.oensker_besog)
            {
                return Json("true");
            }
            else
            {
                return Json("false");
            }
        }
    }

    return Json("null"); 
}
Run Code Online (Sandbox Code Playgroud)

并检索代码:

$.getJSON('WishesVisit', function (data) {
    alert(data);
});
Run Code Online (Sandbox Code Playgroud)

为什么我会收到500内部服务器错误?

调试器不会捕获任何异常.

asp.net-mvc asp.net-mvc-3

6
推荐指数
1
解决办法
5456
查看次数

MS Access 2010查询多次拉出相同的记录,sql挑战

我目前正在开发一个程序来跟踪我公司的库存,使用ms Access 2010.我很难获得用于显示库存的查询,以显示我想要的信息.问题似乎是查询多次拉出相同的记录,使预留和已售产品的总和膨胀.

背景:我公司库存钢筋.我们提议将条形切成碎片.从库存方面来说,我们希望跟踪每个酒吧的长度,从进入仓库的那一刻起,到仓库中的时间(可能会被切成小块),直到整个酒吧出售并消失.

数据库:提出问题的查询,是咨询3个表;

  • Barstock(以下字段)
    • BatchNumber(收到的所有酒吧,相同的生产热量)
    • BarNo(个人酒吧)
    • 原始长度(在库存中收到的条的长度

(BatchNumber和BarNo组合,是主键)

  • 销售

    • ID(主键)
    • BatchNumber
    • 巴诺
    • 已售出数量
  • 预订(卖方可以预留一些材料,当客户表示兴趣,但需要时间来决定)

    • ID(主键)
    • BatchNumber
    • 巴诺
    • 数量保留

我想把这三个表中的信息拉到一个列表中,显示:-Barstock.orginial length As Received - Sales.Quantity已售出已售出 - 已收到 - 按库存出售 - 预订.数量保留为已保留 - 现货 - 保留为可用.

问题是我吮吸sql.我尽最大努力研究了联盟和内心的联系,但我的努力一直都是徒劳的.我通常依靠设计视图来生成我需要的Sql语句.有了设计视图,我想出了以下Sql:

SELECT 
  BarStock.BatchNo
  , BarStock.BarNo
  , First(BarStock.OrgLength) AS Recieved
  , Sum(Sales.QtySold) AS SumAvQtySold
  , [Recieved]-[SumAvQtySold] AS [On Stock]
  , Sum(Reservation.QtyReserved) AS Reserved
  , ([On Stock]-[Reserved])*[Skjemaer]![Inventory]![unitvalg] AS Available
FROM 
  (BarStock 
    INNER JOIN Reservation ON (BarStock.BarNo = Reservation.BarNo) AND (BarStock.BatchNo = Reservation.BatchNo)
  ) 
    INNER JOIN Sales …
Run Code Online (Sandbox Code Playgroud)

sql ms-access

6
推荐指数
1
解决办法
7万
查看次数

使用 Parquet.NET 写入 Parquet 文件适用于本地文件,但会导致 Blob 存储中的空文件

我们正在使用parquet.net来编写 parquet 文件。我设置了一个包含 3 列和 2 行的简单架构:

        // Set up the file structure
        var UserKey = new Parquet.Data.DataColumn(
            new DataField<Int32>("UserKey"),
            new Int32[] { 1234, 12345}
        );

        var AADID = new Parquet.Data.DataColumn(
            new DataField<string>("AADID"),
            new string[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() }
        );

        var UserLocale = new Parquet.Data.DataColumn(
            new DataField<string>("UserLocale"),
            new string[] { "en-US", "en-US" }
        );

        var schema = new Schema(UserKey.Field, AADID.Field, UserLocale.Field
        );
Run Code Online (Sandbox Code Playgroud)

当使用 FileStream 写入本地文件时,会创建一个文件,当代码完成时,我可以在文件中看到两行(后面是 1 kb):

            using (Stream fileStream = System.IO.File.OpenWrite("C:\\Temp\\Users.parquet")) {
                using (var parquetWriter = new …
Run Code Online (Sandbox Code Playgroud)

c# parquet azure-blob-storage azure-functions parquet.net

6
推荐指数
1
解决办法
8234
查看次数