标签: sql-server-2008-r2

"合并"样式操作与文字值?

我有一张包含学生级关系的表格:

Student   Grade   StartDate   EndDate
   1        1    09/01/2009    NULL
   2        2    09/01/2010    NULL
   2        1    09/01/2009   06/15/2010
Run Code Online (Sandbox Code Playgroud)

我试图写一个存储过程,它接受Student,Grade以及StartDate和我会把它想

  1. 检查以确保这些值不重复
  2. 如果记录不重复,请插入记录
  3. 如果有现有的学生记录,并且有a EndDate = NULL,则用StartDate新记录更新该记录.

举例来说,如果我调用过程并传递1,2,09/01/2010,我想直到结束:

Student   Grade   StartDate   EndDate
   1        2    09/01/2010    NULL
   1        1    09/01/2009   09/01/2010
   2        2    09/01/2010    NULL
   2        1    09/01/2009   06/15/2010
Run Code Online (Sandbox Code Playgroud)

这听起来像我可以使用MERGE,除了我传递文字值,我需要执行多个操作.今天早上我也有一个邪恶的头痛,似乎无法清楚地思考,所以我正在关注这个MERGE解决方案.如果有更明显的方法可以做到这一点,不要害怕指出它.

sql merge sql-server-2008-r2

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

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万
查看次数

SSIS - OLE DB目标 - 表或视图加载与快速加载

从我读过的内容:

表或视图数据访问模式一次提交每一行作为事务.因此,制作一个包传输500万行需要很长时间(30多分钟).

快速加载数据访问模式允许在插入目标时指定批处理行和提交大小.例如,插入500万条记录只需2分钟.

现在出现的问题是加载到DW的SSIS包之一在OLE DB目标中使用表或视图数据访问模式.根据我的理解,这是为了获取它插入的错误行(错误约束)到错误记录表中.因此,我们有一个超过30分钟的过程.反过来,对于相同的动作,快速加载将花费不到2分钟.

如果我理解正确,快速加载将无法区分哪一行导致批处理中的错误,而这又导致批处理完全失败?如果是这样,是否有另一种方法来处理这种情况,其中具有错误行的批处理由错误约束重定向,然后以批处理中的良好记录发送到正确的目的地的方式工作到目标,同时仍然发送错误记录到错误日志表中?即使这样做也是个好主意吗?是否更好地咬一口关于它需要的时间?

先感谢您.

ssis data-warehouse sql-server-2008-r2

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

带有子句与临时表的SQL Server

我也可以

select * into #randomTenUsers from
(select top 10 * from users)x    

select * from #randomTenUsers
Run Code Online (Sandbox Code Playgroud)

要么

WITH randomTenUsers   as (select top 10 * from users)    

select * from randomTenUsers
Run Code Online (Sandbox Code Playgroud)

根据我的理解,WITH语句还会创建一个临时结果集.

有没有理由认为WITH应优先于临时表,反之亦然?

sql-server sql-server-2008-r2

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

如何查询当前用户的角色

我正在寻找一个select语句,它将检索当前连接的所有数据库角色的列表.

我想创建一个视图,将所有角色都返回给客户端软件,这样软件可以根据角色调整其用户界面(例如显示/隐藏菜单条目等)

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

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

如何找到两列数据之间的差异?

我有一个带有两列整数数据的临时表,我想找到第三列中两列之间的差异.

#TEMP1

Present   previous
59           88
75           75
45           45
77           88
09           08

#temp2

Difference
 29
 0
 0
 11 
 -1
Run Code Online (Sandbox Code Playgroud)

这可能吗 ??

t-sql sql-server temp-tables addition sql-server-2008-r2

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

如何在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
查看次数

无法将一个或多个字符从XML转换为目标整理

当我传输从xml转换的varchar字段时.从一个服务器转移到另一个服务器它显示错误错误消息显示

消息6355,级别16,状态1,行3
将一个或多个字符从XML转换为目标整理是不可能的

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

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

我运行的是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万
查看次数

将带有'YYYYMMDDHHMMSS'格式的字符串转换为datetime

我知道有很多关于将字符串转换为datetime已经发布的问题,但是我没有找到任何用于转换字符串的内容20120225143620,包括秒.

我试图不串-ING出每个段,并与串联执行清洁转化/:.

有没有人有什么建议?

sql-server datetime datetime-format sql-server-2008-r2

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