标签: sql-server-2008-r2

另一个会话正在使用的事务上下文

我有一个名为MyTableon 的表,我已经定义了一个触发器,如下所示:

CREATE TRIGGER dbo.trg_Ins_MyTable
   ON  dbo.MyTable 
   FOR INSERT
AS 
BEGIN
    SET NOCOUNT ON;

    insert SomeLinkedSrv.Catalog.dbo.OtherTable 
        (MyTableId, IsProcessing, ModifiedOn)
    values (-1, 0, GETUTCDATE())
END
GO
Run Code Online (Sandbox Code Playgroud)

每当我尝试插入一行时MyTable,都会收到以下错误消息:

Msg 3910,Level 16,State 2,Line 1事务上下文,由另一个会话使用.

我已SomeLinkedSrv正确定义为链接服务器(例如,select * from SomeLinkedSrv.Catalog.dbo.OtherTable工作正常).

如何避免错误并成功插入记录+执行触发器?

t-sql triggers linked-server sql-server-2008-r2

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

SSRS中的可选多值参数

我的报告中有3个多值参数.其中2个是可选的.有没有办法在报告中获得结果而不从2个可选参数中选择任何参数.

我的存储过程将多个参数检查为(状态IN(SELECT*FROM Split(@State,',')))

我已经为WHERE CustomerId = @CustId或@CustId IS NULL的单值参数做了这个.

WorkAround: 我选择了'允许空值',它抛出此错误"多值参数不能包含空值"

谁能指出我正确的方向?

sql-server-2008-r2 reporting-services ssrs-2008

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

是否应在父表或子表上创建外键?

有什么不同?如果我有这两个表:

CREATE TABLE Account (Id int NOT NULL)

CREATE TABLE Customer (AccountId int NOT NULL)
Run Code Online (Sandbox Code Playgroud)

我想要一个连接两者的外键,我应该做以下哪些?为什么?

选项1:

ALTER TABLE [dbo].[Customer]  WITH CHECK 
  ADD  CONSTRAINT [FK_Accounts_Customers] FOREIGN KEY([AccountId])
  REFERENCES [dbo].[Account] ([Id])
Run Code Online (Sandbox Code Playgroud)

选项2:

ALTER TABLE [dbo].[Account]  WITH CHECK 
  ADD  CONSTRAINT [FK_Accounts_Customers] FOREIGN KEY([Id])
  REFERENCES [dbo].[Customer] ([Id])
Run Code Online (Sandbox Code Playgroud)

sql foreign-keys sql-server-2008-r2

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

错误:注意:无法通过电子邮件通知"操作员".当作业失败时尝试发送电子邮件

我在工作失败时发送通知时遇到问题.我创建了数据库邮件配置文件并将其分配给SQL代理和重新启动的SQL代理.当我运行程序时msdb.dbo.sp_send_dbmail,正在发送电子邮件.此外,当我使用数据库邮件发送测试电子邮件时,它工作正常.但是当我在Job失败时设置通知时,在作业日志中我看到以下信息:注意:无法通过电子邮件通知"SQL作业失败". 我不知道这个问题的根源是什么.我发现这个提示:http://sqlblog.jfperry.com/jpsql/post/2009/04/07/NOTE-Failed-to-notify-7boperator7d-via-email.aspx

但我检查了在SQL Agent中启用了配置文件.SQL Agent已重新启动.哪里可以成为问题的根源?

database-mail sql-server-2008-r2

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

IsEmpty函数如SQL Server中的ISNULL?

我有这个sql,

IF(@ID = '')
BEGIN
    SET @ID = NULL;
END

IF(@Name = '')
BEGIN
    SET @Name = NULL;
END

IF(@PhoneNumber = '')
BEGIN
    SET @PhoneNumber = NULL;     
END

IF(@Price = '')
BEGIN
    SET @Price = NULL;
END

IF(@NewPrice = '')
BEGIN
    SET @NewPrice = NULL;
END

IF(@ModelNumber = '')
BEGIN
    SET @ModelNumber = NULL;
END

IF(@SKU = '')
BEGIN
    SET @SKU = NULL;
END
Run Code Online (Sandbox Code Playgroud)

我正在寻找IsEmpty函数,如ISNULL.所以我可以,

ISEMPTY(@SKU, NULL)
Run Code Online (Sandbox Code Playgroud)

这在SQL中是否可行.

sql t-sql sql-server sql-server-2008-r2

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

如何在sql server 2008中生成随机布尔值?

我正在为某种大学写一个数据库,并且有一个名为的表

Contact_Assign其参数是:

Is_Instructor       UD_BOOLEAN NOT NULL,
Is_TeacherAssistant UD_BOOLEAN NOT NULL,
Is_Student          UD_BOOLEAN NOT NULL,
Registration_ID     UD_ID      NOT NULL,
Contact_ID          UD_ID      NOT NULL,
Run Code Online (Sandbox Code Playgroud)

现在我想在此表中插入虚拟数据,但我不知道如何为布尔参数执行此操作.

PS.UD_BOOLEAN是

CREATE TYPE UD_BOOLEAN FROM BIT
Run Code Online (Sandbox Code Playgroud)

任何想法怎么样?

sql sql-server sql-server-2008-r2

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

我运行的是32位还是64位的Sql Server

当我运行时,select @@version我得到以下内容:我认为英特尔X86意味着我正在运行32位版本 - 但后来我也看到了最终的X64 ....

Microsoft SQL Server 2008 R2(SP2) - 10.50.4000.0(Intel X86)2012年6月28日08:42:37
版权所有(c)Microsoft Corporation在Windows NT 6.1上具有高级服务的Express Edition(Build 7601:Service Pack 1)(WOW64)

当我跑步时,Exec master.dbo.xp_msver我得到以下内容:

1   ProductName NULL    Microsoft SQL Server
2   ProductVersion  655410  10.50.4000.0
3   Language    1033    English (United States)
4   Platform    NULL    NT INTEL X86
5   Comments    NULL    SQL
6   CompanyName NULL    Microsoft Corporation
7   FileDescription NULL    SQL Server Windows NT
8   FileVersion NULL    2009.0100.4000.00 ((KJ_PCU_Main).120628-0827 )
9   InternalName    NULL    SQLSERVR
10  LegalCopyright  NULL    Microsoft Corp. …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008 sql-server-2008-r2

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

奇怪的"OLE DB提供程序'STREAM'用于链接服务器'(null)'返回列'[!BulkInsert] .Value'错误的无效数据

使用的软件:Windows 7 64位Ultimate,.Net 4,SQL Server 2008 R2.

select @@ version返回:

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64)   Apr 22 2011 19:23:43   Copyright (c) Microsoft Corporation  Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) 
Run Code Online (Sandbox Code Playgroud)

要重现,并假设您有本地sql server 2008 R2实例,请将以下代码粘贴到linqpad中并将其作为程序运行.

它爆炸了:

链接服务器'(null)'的OLE DB提供程序'STREAM'返回列'[!BulkInsert] .Value'的无效数据.

void Main()
{
  SqlConnection cn = new SqlConnection("data source=localhost;Integrated Security=SSPI;initial catalog=tempdb;Connect Timeout=180;");
  cn.Open();

  IList<decimal> list = new List<decimal>() {-8m, 8m};

  decimal result = list.Sum(x => x);

  Console.WriteLine(result == 0);

  string tableName …
Run Code Online (Sandbox Code Playgroud)

sqlbulkcopy sql-server-2008-r2 c#-4.0

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

如何找到当前版本的SQL Server数据层应用程序?

我们正在使用SQL Server数据层应用程序(dacpac或DAC包),我很难找到当前版本的数据库.

有没有办法使用以下任何方法获取当前版本:

  1. 从SQL Server Management Studio中
  2. 通过SQL语句
  3. 以编程方式使用.NET代码

sql-server-2008-r2 data-tier-applications

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

如何使用ReportService2010命名空间呈现报表

我正在开发一个项目,我们将在SQL Server 2008 R2下与ReportService2010报告Web服务进行交互.在过去,我使用过ReportService2005.asmx,我的问题是,我找不到任何关于如何使用这个新的(2010)报告Web服务呈现报告的合理示例.

使用2005 Web服务时,使用wsdl.exe实用程序创建代理时提供了"Render"方法.是否有一个等效的方法(或一组方法),使用ReportService2010服务完成相同的事情?或者是否有任何端到端的初始化和调用新代理的体面示例?

即使MSDN也没有太多信息,并且在ReportService2010 API文档的某些部分中,仍有旧的代码片段仅适用于2005 Web服务.

更新:一个更好的问题可能是在SSRS 2008和SSRS 2008 R2之间如何以编程方式调用报表服务......我可以看到,即使在SSRS 2008 R2下,仍然存在ReportService2005.asmx,以及ReportExecution2005.asmx,但没有相应的ReportExecution2010.asmx.

解决方案更新:
在与我公司的某人交谈后,我被告知以下情况:

  1. 引入了2006年的Web服务,以支持2008年的sharepoint集成.
  2. 引入ReportService2010 Web服务是为了将2006年引入的所有功能与2005 Web服务合并.
  3. ReportService2005 Web服务将继续用于报告执行.我不知道为什么,但有些东西告诉我它与业务决策有关,以实现向后兼容性.我的同事表示我们打算继续使用ReportExecution2005进行渲染,并使用ReportService2010进行所有其他功能(查询SSRS服务器以获取报告,参数等).

不幸的是,所有上述信息都是从各种链接中挑选出来的,其中没有一个链接简明扼要地陈述了上述所有内容.您通常会假设供应商向客户开发人员解释这种事情.

asp.net sql-server-2008-r2 reporting-services

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