我需要使用RAISERROR来抛出一条消息(弹出消息)并提交该事务.有什么选择吗?
对于严重性18,事务得到了回滚.我已将严重性更改为10并尝试了
RAISERROR('Your Reference Number is %s',10,0,@param);
Run Code Online (Sandbox Code Playgroud)
这但它提交了交易,但没有显示消息.我需要的是必须抛出消息并且必须提交事务
有什么建议吗?
问题:
我正在尝试返回一个包含所有连接在一起的父项名称的列的联系人列表.请不要打扰告诉我这违反了第1范式,我已经知道了.我一直试图让这个工作很长时间,这可能是一个愚蠢的错误,但我现在需要一些帮助.
查询:
SELECT C.ID, C.SequenceNumber, C.ContactType, C.GUID, C.ContactCategory, MAP.Parents, C.LastName, C.FirstName, C.CompanyName, C.Title, C.Email, C.Phone, C.MobilePhone, C.Fax, C.Comments, C.StandardConfirmation, C.Active FROM
(
SELECT ContactTypeMapping.Contact_GUID, STUFF( ( SELECT ','+ [NAME]
FROM ContactParents a
WHERE a.GUID =b.GUID
FOR XML PATH('')),1 ,1, '') Parents
FROM ContactParents b, ContactTypeMapping
WHERE ContactTypeMapping.Parent_GUID=b.GUID
) MAP
INNER JOIN
(
SELECT Contact.ID, Contact.GUID, Contact.SequenceNumber,
Contact.ContactType, Contact.ContactCategory, Contact.LastName, Contact.FirstName,
Contact.CompanyName, Contact.Title, Contact.Email, Contact.Phone,
Contact.MobilePhone, Contact.Fax, Contact.Comments, Contact.StandardConfirmation, Contact.Active
FROM Contact
)C
ON (MAP.Contact_GUID=C.GUID)Run Code Online (Sandbox Code Playgroud)
目前的结果:
ID SequenceNumber ContactType GUID …Run Code Online (Sandbox Code Playgroud) CASE
WHEN CHARINDEX('%', '{FixedARMRateReductionLimit}') > 0 THEN
CAST(SUBSTRING('{FixedARMRateReductionLimit}', 0,
CHARINDEX('%', '{FixedARMRateReductionLimit}')) as decimal)/100
WHEN '{FixedARMRateReductionLimit}' = 'Weekly PMMS Rate' THEN
PARAM_VAL_TXT
ELSE
.02
END
Run Code Online (Sandbox Code Playgroud) 这是我的'联系人'表.
| Names | Gender |
| Mike | Male |
| Steve | Male |
| Kelly | Female |
| Jane | Female |
| Natasha | Female |
| Mathew | Male |
| Jack | Male |
Run Code Online (Sandbox Code Playgroud)
我想要这样的结果:
| Male | Female |
| Mike | Kelly |
| Steve | Jane |
| Mathew | Natasha |
| Jack | |
Run Code Online (Sandbox Code Playgroud)
请给我解决方案在SQL Sever中实现此结果...任何建议表示赞赏!
我想在一个表中插入记录,其中列具有相同的值,用于插入所有记录.如何在不改变表结构的情况下完成.
Insert into tableA(clientid,no_of_users)
select clientid
from tableB
Run Code Online (Sandbox Code Playgroud)
我想要所有记录的no-of_users = 3
INSERT INTO @blah (ID, Date)
VALUES (123, '11/12/2012')
VALUES (124, '11/30/2012')
VALUES (125, '11/28/2012')
VALUES (126, '12/1/2012')
VALUES (127, '12/30/2012')
VALUES (128, '12/25/2012')
VALUES (129, '12/26/2012')
Run Code Online (Sandbox Code Playgroud)
我希望获得行,其中日期是相应月份的最后一周,可以追溯到两个月.这个月是2013年1月,所以我想要2012年12月和2012年11月的最后一周.
最终的选择是一个月的最后一周例子:2012年12月= 12/23-12/29但是现在生病在这个月的最后7天.
我知道如何获得最近两个月但不确定如何获得相应月份的最后一周..
select
*
from
@blah
where
dateDiff(month,date,getdate()) < 2 ---only look at the last two months
Run Code Online (Sandbox Code Playgroud) 我有一个遗留存储过程试图创建一个光标来遍历查询中的每一行.表现非常糟糕.然后我检查查询计划,大部分成本(> 47%)都在一个对象上[tempdb].[CWT_PrimaryKey].此对象由存储过程中创建的游标创建.不确定如何提高此案例的性能,因为在tempdbSQL Server创建的此对象上无法执行任何操作.
存储过程中的伪代码如:
BEGIN TRY
BEGIN TRANSACTION
declare mycusorr local fast_forward
for SELECT * From MyTab Where a=b;
open mycusorr;
fetch next from mycusorr into @v1, @v2, ...;
while @@fetch_status = 0
begin
--some query to check rules from different tables
Update AnotherTab Set column=value where id = @v1;
if (there is error)
insert error to error user log table;
End
close mycusorr;
deallocate mycusorr;
COMMIT;
END TRY
BEGIN CATCH
close mycusorr;
deallocate mycusorr;
SELECT …Run Code Online (Sandbox Code Playgroud) Declare @Mytable TABLE
(
Field2 INT,
Field2 VARCHAR(MAX)
)
Run Code Online (Sandbox Code Playgroud)
在Sql Server中创建表变量时,是否需要此"@"
谢谢advnc.
我是Microsoft SQL Server的新手,我有以下问题.
在数据库中,我有一个名为VulnerabilityAlertDocument的非常大的表,我必须在此表上执行插入操作.
所以我创建了以下插入查询:
INSERT INTO VulnerabilityAlertDocument (
[Id], [VulnerabilityAlertId], [SourceId], [BugTraqID], [Title],
[StatusID], [CVE], [Published], [LastUpdated], [Remote],[Local],
[Credibility],[Classification],[Availability], [Ease], [Authentication],
[CVSS2_BaseScore], [CVSS2_TemporalScore], [CVSS2_BaseVector],
[CVSS2_TemporalVector], [CVSS1_BaseScore], [CVSS1_TemporalScore],
[NVD_CVSS2_BaseScore], [NVD_CVSS2_ComponentString], [ImpactRating],
[Severity], [EaseofExploit], [UrgencyRating], [LastChange],
[ShortSummary], [Impact], [TechnicalDescription], [AttackScenario],
[Exploit], [Credit], [URL], [AlertStatusId], [Type], [DetailLevel],
[Language], [dd]
VALUES ('10000', '10000', 'TEST', '12345', 'TEST TITLE', '46967', 'TEST CVE',
'2010-12-19 00:00:00.000', '2011-06-29 20:49:07.000', 'Yes','No',
'Vendor Confirmed', 'Boundary Condition Error', 'Always',
'No Exploit Available', 'Not Required', 'N.A.', 'N.A.', 'N.A.', …Run Code Online (Sandbox Code Playgroud) 我有一个结果集
Col1: Col2
a b
c d
Run Code Online (Sandbox Code Playgroud)
我想要结果集
a
b
c
d
Run Code Online (Sandbox Code Playgroud)
不使用Union,Union all和Pivot.
sql-server-2008 ×10
sql ×8
sql-server ×5
database ×1
performance ×1
raiserror ×1
rdbms ×1
ssis ×1
t-sql ×1