小编Int*_*eer的帖子

由于找不到订阅者,无法路由已发布的消息

在服务器中运行 BizTalk 包时出现以下错误:

由于找不到订阅者,无法路由已发布的消息

包描述:使用存储过程将 CSV 平面文件导入 SQL Server。

在此输入图像描述

分解:

创建表代码:

CREATE TABLE [dbo].[Accounts](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [AccountName] [nvarchar](150) NULL,
    [ServiceAddress] [nvarchar](150) NULL,
    [AccountNumber] [nvarchar](50) NULL,
 CONSTRAINT [PK_Accounts] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

创建存储过程代码:

CREATE PROCEDURE [dbo].[InsertAccount]
    @AccountName AS NVARCHAR(150) ,
    @ServiceAddress AS NVARCHAR(150) ,
    @AccountNumber AS NVARCHAR(50)
AS 
    INSERT  INTO dbo.accounts
            ( AccountName ,
              ServiceAddress …
Run Code Online (Sandbox Code Playgroud)

biztalk biztalk-2013r2

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

子查询返回的值超过1

我需要选择具有1种状态的个人联系人.

问题是单个联系人可以基于4个不同的列具有多个同时的状态.

活动状态取代非活动状态.如果联系人同时处于活动和非活动状态,则应默认为活动状态.

到目前为止,我的子查询独立工作,但当单个联系人在不同列中具有2个或更多同时状态时,它们返回的值超过1.

关于如何以1状态返回单个联系人的任何想法?

SELECT Contact,
   ((SELECT 'Active'
     FROM   MyTable
     WHERE  Column1 = 1
             OR Column2 = 1)
    UNION
    (SELECT 'Inactive'
     FROM   MyTable
     WHERE  Column3 = 1
             OR Column4 = 1)) AS MyStatus
FROM   MyTable 
Run Code Online (Sandbox Code Playgroud)

sql t-sql

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

具有选择标准的TSQL随机选择

我的数据库在表"类别"中有5个类别.我还有一个名为"items"的表,其中每个项目都有唯一的Id和类别Id FK.

我需要从1个类别中随机选择10个项目.

如果只有一个类别,这不会有问题.但表"items"以非连续顺序存储类别id.

下面的随机选择语句有效,并且能够生成范围内的随机ID.但是,如何生成属于同一类别的10个随机ID?

Declare @maxRandomValue tinyint = 100
    , @minRandomValue tinyint = 0;

Select Cast(((@maxRandomValue + 1) - @minRandomValue) 
    * Rand() + @minRandomValue As tinyint) As 'randomNumber';
Run Code Online (Sandbox Code Playgroud)

Defintions:

Table Categories
ID INT
Desc Varchar(100)

Table Items
ID Int
CategoryID Int (fk)
Desc Varchar(100)
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

TSQl:选择当前日期 - 6天,并将时间设置为12:01 AM

我想获得当前日期 - 6天.这很容易.

现在我想获得当前日期 - 6天+ 12:01 AM.

所以如果今天是3-2-2012 11:14 AM.

我希望2-25-2012 12:01 AM

这2个选项将给我当前日期 - 6,但不会将时间重置为12:01 AM

  • 选择getdate() - 6
  • SELECT DATEADD(day,-6,CURRENT_TIMESTAMP);

sql t-sql sql-server sql-server-2005 sql-server-2008

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

处理DateTime和Null值

  1. 我有一个名为DateTime类型的modifieddate变量,可以设置为null.
  2. 我使用datareader填充变量,如果读取器为空,则将值设置为空
  3. 当我进一步使用变量时,商店程序抱怨我没有提供价值."过程或函数'tHistory_Insert'需要参数'@modifieddate',这是未提供的"

问题:当日期为空时,有关如何将空值传递到存储过程的任何想法?

步骤1

Public modifieddate As Nullable(Of DateTime)
Run Code Online (Sandbox Code Playgroud)

第2步

If IsDBNull(dr("modifieddate")) = False Then

     modifieddate = DateTime.Parse(dr("modifieddate"))
Else

     modifieddate = Nothing
End If
Run Code Online (Sandbox Code Playgroud)

第3步

command.Parameters.Add("@modifieddate", SqlDbType.DateTime).Value = modifieddate
command.ExecuteNonQuery()
Run Code Online (Sandbox Code Playgroud)

vb.net ado.net

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

数据直接绑定到商店查询

我正在尝试将金额分组并加载到vb.net(asp.net)的下拉框中

但是我收到以下错误:

不支持直接绑定到商店查询(DbSet,DbQuery,DbSqlQuery,DbRawSqlQuery)的数据.而是使用数据填充DbSet,例如通过在DbSet上调用Load,然后绑定到本地数据.对于WPF绑定到DbSet.Local.对于WinForms绑定到DbSet.Local.ToBindingList().对于ASP.NET WebForms,您可以绑定到查询上调用ToList()的结果或使用模型绑定,有关详细信息,请参阅

我的代码:

'Load Amounts
Dim SourceAmounts = (From p In db.PayoutAdjustments
                     Order By p.Amount
                     Where p.PayoutId = PayoutId
                     Group p By Key = p.Amount Into Group
                     Select Amount = Group)

cmbAmount.DataSource = SourceAmounts
cmbAmount.DataTextField = "Amount"
cmbAmount.DataValueField = "Amount"
cmbAmount.DataBind()
cmbAmount.Items.Insert(0, New ListItem("Select Amount", 0))
Run Code Online (Sandbox Code Playgroud)

vb.net asp.net entity-framework

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

在GAC -Visual Studio 2013加载项中注册DLL

有没有人知道BiztalkNOS的竞争对手直接从Visual Studio 2013将ac#library dll注册到GAC?

NOS是499美元,我希望有另一种选择.

biztalk gac dllregistration biztalk-2013

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

当故意导致故障时,Catch在SQL中失败

当故意导致故障时,Catch在存储过程中失败.

我试图通过在创建存储过程后更改列名来测试我的存储过程中的catch部分.但是捕获永远不会被执行,并且它会在错误的行处失败.关于我可能做错的任何想法?

重现步骤:

* Create Table ErrorTest 

    CREATE TABLE [dbo].[ErrorTest](

        [ErrorTest] [varchar](50) NULL

    ) ON [PRIMARY]

* Create Stored Procedure TestError

    SET NOCOUNT ON;

    DECLARE @EmailMessage AS VARCHAR(5000)

    BEGIN

        BEGIN TRY

            SELECT  ErrorTest FROM ErrorTest

        END TRY

        BEGIN CATCH             
            declare @error int, @message varchar(4000), @xstate int;
            select @error = ERROR_NUMBER()
                 , @message = ERROR_MESSAGE()
                 , @xstate = XACT_STATE();

        SET @EmailMessage = 'Failure ' + CHAR(13) + 'Error Code: '+ CAST(@error AS VARCHAR)  + CHAR(13) + @message
            EXEC    [leads].[usp_SendEmail]
                    @Mysubject = …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005

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

在TSQL中将日期移至星期一

我需要在TSQL中创建一个函数,如果传递的日期只是星期六或星期日,它会将日期移动到星期一.

例如:

  • 2012年5月6日应该返回5/7/2012
  • 2012年5月12日应该返回2012年5月14日

如果日期不是星期六或星期日,请返回输入日期

sql t-sql sql-server

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

为什么ad-hoc SQL比在存储过程中执行相同的代码运行得更快?

我有一个存储过程,可以在SQL Server 2005中批量处理电话和地址

如果我执行存储过程需要2个小时.但是,如果我运行相同的代码和相同的批处理,它需要2秒.

我已尝试以下步骤使其更快但它们没有工作:

  • 重新索引整个数据库
  • SET ANSI_NULLS ON;
  • DBCC FreeProcCache
  • DBCC DROPCLEANBUFFERS

这是基本代码

USE [MyDB]

GO



/****** Object:  StoredProcedure [myschema].[ProccesBatch]    Script Date: 06/30/2011 10:37:33 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE PROCEDURE [myschema].[ProccesBatch] 
-- Add the parameters for the stored procedure here

(@BatchId int)


AS

BEGIN

-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.

SET NOCOUNT ON;
SET ANSI_NULLS ON;

-- AD Hoc TESTING ONLY. This gets uncommented …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

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

将值添加到另一个类类的类成员

以下程序验证供应商文件.

以下是规则:

  • 当时处理1供应商
  • 验证以下3个方案(供应商发送文件,未发送文件,发送过多文件)
  • 将验证结果存储在InvoiceFileValidationClass类中
  • 名为"Files"的InvoiceFileValidationClass的1个类成员是"ArhiveFilesClass"类型的列表
  • 成员"文件"需要存储多个文件名以进行存档
  • 将值添加到InvoiceFileValidationClass的所有其他成员不是问题
  • 向成员"Files"添加值会在以下代码行中生成null异常: ValidateFileCount.Files.Add(temp)

关于如何避免null异常的任何想法?

    Public Class InvoiceFileValidationClass
        Public VendorName As String
        Public FileName As String
        Public FileCount As InvoiceFileCount
        Public FileContent As InvoiceFileContent
        Public ErrorMessage As String
        Public Files As List(Of ArhiveFilesClass)
    End Class
    Public Class ArhiveFilesClass
        Public OriginalFilePathandName As String
        Public ArchiveFilePathandName As String
    End Class
Public Enum InvoiceFileCount
    FileMissing
    PassedValidation
    TooManyFiles
End Enum

Public Shared Function ValidateFileContent(Vendor As VendorClass) As InvoiceFileValidationClass
        ValidateFileContent = New InvoiceFileValidationClass
        ValidateFileContent.FileContent = InvoiceFileContent.PassedValidation
        Dim MyUnzippedFolder As …
Run Code Online (Sandbox Code Playgroud)

vb.net

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