事务复制出错:将字符串转换为 uniqueidentifier 时出现语法错误
我在做SQL SERVER 2000的排队更新的事务复制时,会自动在原来每个表上新增一列uniqueidentifier类型的字段,可是加上后,程序运行就出错了:
执行 SQL 语句时出错!错误信息:将字符串转换为 uniqueidentifier 时出现语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Exception: 执行 SQL 语句时出错!错误信息:将字符串转换为 uniqueidentifier 时出现语法错误。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[Exception: 执行 SQL 语句时出错!
错误信息:
将字符串转换为 uniqueidentifier 时出现语法错误。]
it.com.cn.DbServices.SqlDbService.ExecuteNone(String SqlString, DbParams Params)
it.com.cn.DbServices.DbService.ExecuteNone(String SqlString, DbParams Params)
it.com.cn.DbServices.DbService.ExecuteNone(String SqlString)
ITEasy.SystemAdmin.Articles.ArticlesList.lbtnHideSelect_Click(Object sender, EventArgs e)
System.Web.UI.HtmlControls.HtmlAnchor.OnServerClick(EventArgs e) +108
Sy
stem.Web.UI.HtmlControls.HtmlAnchor.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +26
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +138
System.Web.UI.Page.ProcessRequestMain() +1292
--------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2407; ASP.NET 版本:1.1.4322.2407
我检查过存储过程也没问题,不知道是在哪里发生这样的转换的?
------解决方案--------------------应该是有你的SQL语句写的有问题,可能没有指定字段写insert等等的问题(当然复制增加的GUID类型字段可能调整过位置)。否则不会出现这样的错误
------解决方案--------------------SQL code
--test1:
declare @u uniqueidentifier
declare @s varchar(50)
set @s = '17318736-34D5-41C1-9EC8-587BD26F54EB'
select @u = convert(uniqueidentifier,@s)
/**
Command(s) completed successfully.
**/
--test2:
declare @u uniqueidentifier
declare @s varchar(50)
set @s = '17318736-34D5-41C1-9EC8-587B&&6F54EB'
select @u = convert(uniqueidentifier,@s)
/**
Msg 8169, Level 16, State 2, Line 5
Conversion failed when converting from a character string to uniqueidentifier.