【发布时间】:2011-11-17 20:18:46
【问题描述】:
当我尝试更改我的存储过程(如下)并收到此错误消息时:
“无法执行 varchar 值到 varchar 的隐式转换,因为由于排序规则冲突导致值的排序规则未解决”
错误出现在这一行:
INSERT INTO @TempList (OrderID) VALUES (@EmpID)
我不明白排序规则存在什么问题。
请,关于这个的想法..
谢谢
USE [database]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[database_0301_PRJ_dir_ger]
@EmpList varchar(100)
AS
DECLARE @TempList table (OrderID varchar(10))
DECLARE @EmpID varchar(10)
DECLARE @Pos int
IF @EmpList <> ''
BEGIN
SET NOCOUNT ON
SET @EmpList = LTRIM(RTRIM(@EmpList))+ ','
SET @Pos = CHARINDEX(',', @EmpList, 1)
IF REPLACE(@EmpList, ',', '') <> ''
BEGIN
WHILE @Pos > 0
BEGIN
SET @EmpID = LTRIM(RTRIM(LEFT(@EmpList, @Pos - 1)))
IF @EmpID <> ''
BEGIN
INSERT INTO @TempList (OrderID) VALUES (@EmpID)
END
SET @EmpList = RIGHT(@EmpList, LEN(@EmpList) - @Pos)
SET @Pos = CHARINDEX(',', @EmpList, 1)
END
END
SELECT dir.sigla + '-' + ger.nome AS dirger,
ger.codigo as gercodigo,
ger.nome as gernome,
dir.nome AS dirnome,
ger.diretoria as gerdiretoria
FROM d
bo.database_091500_GERENCIAS AS ger
INNER JOIN
dbo.database_090200_DIRETORIAS AS dir
ON
ger.diretoria = dir.codigo
WHERE
ger.diretoria IN (select * FROM @TempList)
END
【问题讨论】: