小编use*_*183的帖子

SQL Server - 参数嗅探

我已经阅读了很多关于参数嗅探的文章,但目前尚不清楚这是好还是坏.任何人都可以通过一个简单的例子来解释

有没有办法自动检测错误的计划分配给特定的声明?

提前致谢.

sql-server parameter-sniffing

13
推荐指数
1
解决办法
5688
查看次数

BEGIN TRY/CATCH和MSDTC错误

1 /以下代码片段显示了预期的错误:INSERT语句与FOREIGN KEY约束FK _...冲突.

SET XACT_ABORT ON;

BEGIN TRANSACTION

    INSERT INTO linkedsrv1.db1.[dbo].tbl1 ([Col1], [Col2])  
    VALUES (1200, 0)                

COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)

2 /但是当我把它放在BEGIN TRY/CATCH中时,错误消息是模糊的:消息1206,级别18,状态118,行18 Microsoft分布式事务处理协调器(MS DTC)已取消分布式事务.

SET XACT_ABORT ON;

BEGIN TRY  
    BEGIN TRANSACTION   

        -- Error is on this line
        INSERT INTO linkedsrv1.db1.[dbo].tbl1 ([IdWebsite], [IdProductType])  
        VALUES (1200, 0)   

    COMMIT TRANSACTION
END TRY  
BEGIN CATCH
    PRINT 'Error' -- Code not reached

    SELECT ERROR_NUMBER(), ERROR_MESSAGE(), ERROR_SEVERITY(), ERROR_STATE()

    IF XACT_STATE() != 0   
        ROLLBACK TRANSACTION
END CATCH
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?

稍后编辑:

  1. 它适用于我删除不需要的显式事务.当我放入BEGIN/COMMIT TRAN时,我仍然不清楚为什么会出现这个错误.

  2. 如果我在链接服务器上的多个表中有多个插入,我会得到相同的错误.

欢迎任何评论/评论.

sql-server msdtc

13
推荐指数
2
解决办法
8230
查看次数

请求参数不会在POST请求中传输

我调用了一个WebMethod通过Fiddler,我在"请求体"中提供了2个需要的参数,我得到一个奇怪的行为:

  • 前10个请求,它按预期工作=>我可以找到参数值 HttpContext.Current.Request.Form
  • 从第11个POST请求开始,WCF在调试时WebMethod,POST参数不会传输到service => ,HttpContext.Current.Request.Form为空.

任何线索为什么会这样?

这是我的代码:

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/getsomething")]
[FaultContract(typeof(ResponseMessageStatus))]
[DynamicResponseType]
public Stream GetSomething()
{
    var par1 = HttpContext.Current.Request.Form["myparameter"] ;
    //after 10 requests, HttpContext.Current.Request.Form is empty.
    ...
}
Run Code Online (Sandbox Code Playgroud)

.net c# wcf post webmethod

5
推荐指数
1
解决办法
953
查看次数

SQL Server中具有多个父级的层次结构

我正在寻找如何实现一个查询,该查询返回层次结构中允许特定节点的多个父节点的所有节点的所有级别(在所有级别,因此它包括直接祖先,祖先的祖先等).

给出以下表结构:

Table Nodes: Id, Name
Table Relations: IdNode, IdParentNode
Run Code Online (Sandbox Code Playgroud)

一个类似的问题是SQL Server - 以多对多的关系获取连续的所有孩子?,但我没有成功地适应我的情况.

sql-server tree

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

SQL Server查询和OUTER JOIN

鉴于桌子的东西

IdStuff  StuffName  IdLanguage
-------  ---------  ----------
1        Stuff 1    1
1        Stuff 2    2
Run Code Online (Sandbox Code Playgroud)

和观点:vwLanguages

IdLanguage   Name
----------   ----
1            Language 1
2            Language 2
3            Language 3
Run Code Online (Sandbox Code Playgroud)

我想获得:

IdStuff   StuffName  IdLanguage
-------   ---------  ----------
1         Stuff 1    1
1         Stuff 2    2
1         NULL       3
Run Code Online (Sandbox Code Playgroud)

我试过RIGHT JOIN,但我没有成功......

SELECT
    S.IdStuff, S.StuffName, vwLanguages.IdLanguage
FROM
    Stuff S
    RIGHT JOIN vwLanguages ON vwLanguages.IdLanguage = S.IdLanguage
Run Code Online (Sandbox Code Playgroud)

问题是只显示了2行,语言1和语言2 ...

sql-server join

-4
推荐指数
1
解决办法
78
查看次数

标签 统计

sql-server ×4

.net ×1

c# ×1

join ×1

msdtc ×1

parameter-sniffing ×1

post ×1

tree ×1

wcf ×1

webmethod ×1