中不接受换行符我试图把逗号分隔值作为参数存储过程,但是当我按下“Enter”键来继续这些值,以便它可以在单个屏幕中看到(不滚动),SP不接受其之后提供的值“回车”键被按下时在新行(单元)存储过程在参数
USP_SAMPLE_SP @YEAR, @EMPIDS
如果我执行存储如下程序:
USP_SAMPLE_SP '2016','111,222,333,444,555'
它正在执行正确
但是,如果我试图执行象下面这样:
USP_SAMPLE_SP '2016','111,222,
333,444,555'
它接受所有值但它显示值达到“222”之后,它是不考虑任何价值。
参照“换行”我的意思是它是接受象下面这样:
USP_SAMPLE_SP '2016','111, 222,333,444,555'
但是,如果我按“回车”这之后
不接受值。如果任何人能解释这情景会有所帮助。
注意:有时我需要传递大量值(例如1000或更高)。
请建议是否有人知道更好和有效的方法来做到这一点。
首先我创建用户定义的表类型为的empType
CREATE TYPE [dbo].[EMPType] AS TABLE(
FinStartYear varchar(4),
EmpId nvarchar(max) NULL
)
然后我试图通过为改变我的存储过程,如下这些值:
ALTER PROCEDURE [USP_SAMPLE_SP]
-- Add the parameters for the stored procedure here
@FinStartYear EMPType readonly ,
@EmpIDs EMPType readonly
AS
但是,当我将鼠标悬停鼠标超过参数它显示我下面的错误:
The Parameter '@FinStartYear' cannot be declared READONLY since it is not table valued parameter.
The Parameter '@EmpIDs' cannot be declared READONLY since it is not table valued parameter.
但是当我试图人之三的存储过程,它显示如下错误我:
Must declare the scalar variable "@EmpIDs".
Must declare the scalar variable "@FinStartYear"
当我将鼠标悬停在“的empType”它让我看到下面的错误:
Parameter or variable '@FinStartYear' has an invalid datatype.
注:在可编程 - >类型 - >用户定义表类型 - > dbo.EMPType
它显示我已经创建了EMPType。
谢谢...你能告诉我如何删除字符串中的换行符。 – Shardul
其实我正在使用SplitString函数,并将@EMPIDS参数传递给它。 我尝试过使用LTRIM和RTRIM函数,但它不起作用 – Shardul
@Shardul - 查看我的更新。 SplitString不是内置SQL Server函数的名称,所以如果没有看到代码,就不可能知道它的行为。 –