我写了个存储过程
创建时系统提示该错误
存储过程如下:
CREATE PROC upInsertOutStore
@xml varchar(8000)
AS DECLARE @idoc int
DECLARE @Outid int
DECLARE @OutDate datetime
SET @OutDate = getdate()
EXEC sp_xml_preparedocument @idoc output, @xml
SET NOCOUNT ON
DECLARE @CurrentError int
BEGIN TRANSACTION
INSERT INTO OutStore
SELECT @OutDate,OrderID,Customer,DeliverMethod,ShipAddress,Deliverman,Status
FROM OpenXML(@idoc,'/OutStore')
WITH OutStore
SELECT @CurrentError = @@ERROR IF @CurrentError != 0
BEGIN
GOTO ERROR_HANDLER
END SELECT @Outid = @@IDENTITY
INSERT INTO OutStoreItems
SELECT @Outid,ItemID,PrductID,UnitPrice,Quantity
FROM OpenXML(@idoc,'/OutStore/OutStoreItems')
WITH OutStoreItems SELECT @CurrentError = @@ERROR IF @CurrentError != 0
BEGIN
GOTO ERROR_HANDLER
END
UPDATE Inventory
SET Inventory.qty = Inventory.qty - OutStoreItems.Quantity
FROM OpenXML(@idoc, '/OutStore/OutStoreItems')
WITH OutStoreItems
WHERE Inventory.itemid=OutStoreItems.ItemID select @CurrentError = @@Error IF @CurrentError != 0
BEGIN
GOTO ERROR_HANDLER
END
COMMIT TRANSACTION SET NOCOUNT OFF
EXEC sp_xml_removedocument @idoc RETURN @Outid ERROR_HANDLER:
ROLLBACK TRANSACTION
SET NOCOUNT OFF
RETURN 0
GO请问如何解决,急啊,高手们帮帮忙哈
创建时系统提示该错误
存储过程如下:
CREATE PROC upInsertOutStore
@xml varchar(8000)
AS DECLARE @idoc int
DECLARE @Outid int
DECLARE @OutDate datetime
SET @OutDate = getdate()
EXEC sp_xml_preparedocument @idoc output, @xml
SET NOCOUNT ON
DECLARE @CurrentError int
BEGIN TRANSACTION
INSERT INTO OutStore
SELECT @OutDate,OrderID,Customer,DeliverMethod,ShipAddress,Deliverman,Status
FROM OpenXML(@idoc,'/OutStore')
WITH OutStore
SELECT @CurrentError = @@ERROR IF @CurrentError != 0
BEGIN
GOTO ERROR_HANDLER
END SELECT @Outid = @@IDENTITY
INSERT INTO OutStoreItems
SELECT @Outid,ItemID,PrductID,UnitPrice,Quantity
FROM OpenXML(@idoc,'/OutStore/OutStoreItems')
WITH OutStoreItems SELECT @CurrentError = @@ERROR IF @CurrentError != 0
BEGIN
GOTO ERROR_HANDLER
END
UPDATE Inventory
SET Inventory.qty = Inventory.qty - OutStoreItems.Quantity
FROM OpenXML(@idoc, '/OutStore/OutStoreItems')
WITH OutStoreItems
WHERE Inventory.itemid=OutStoreItems.ItemID select @CurrentError = @@Error IF @CurrentError != 0
BEGIN
GOTO ERROR_HANDLER
END
COMMIT TRANSACTION SET NOCOUNT OFF
EXEC sp_xml_removedocument @idoc RETURN @Outid ERROR_HANDLER:
ROLLBACK TRANSACTION
SET NOCOUNT OFF
RETURN 0
GO请问如何解决,急啊,高手们帮帮忙哈
顺带错误消息:服务器: 消息 446,级别 16,状态 9,过程 upInsertOutStore,行 44
无法解决 equal to 操作的排序规则冲突。
当两个表的字符集不同并作关联等比较操作时就会有这个错误.解决办法
1.改表中字符型列的排序规则.
2.强硬指定排序规则,在字段名后面加上这句
COLLATE 字符集的名字 如:COLLATE SQL_Latin1_General_CP1_CI_AS