创建一个SQL存储过程,将字符串解析为先前未知数量的字段。输入将是
结果表将完全依赖于用作输入的字符串
请帮忙,因为我无法弄清楚这一点。我知道这是错的,但我不知道从哪里开始。
这是我到目前为止所尝试的内容:
DECLARE @l INT, @c VARCHAR(MAX) = ''
SELECT @l = MAX(LEN(n)) FROM AdventureWOrk
DECLARE @s NVARCHAR(MAX) = '
;WITH cte AS
)
Insert INTO @Values (1, 'CGID', 'EENumber', 'EEYID', 'SSN' )
SELECT
[Value],
[Value],
Prod_Attributes.value('/Attribute[1]','varchar(MAX)') AS [CGID],
Prod_Attributes.value('/Attribute[2]','varchar(MAX)') AS [EENUMBER],
Prod_Attributes.value('/Attribute[3]','varchar(MAX') AS [EYEID],
Prod_Attributes.value('/Attribute[4]','varchar(MAX') AS [SSN]
答案 0 :(得分:0)
您可以使用以下语法创建存储过程:
body{
background: navy;
}
您可以将已有的代码放在CREATE PROCEDURE usp_YourProcedure
AS
BEGIN
-- Your logic
END
语句中。
要执行存储过程,您可以执行以下操作:
BEGIN
要添加参数,只需在EXEC usp_YourProcedure
声明后声明它们。
CREATE PROCEDURE
然后用参数执行:
CREATE PROCEDURE usp_YourProcedure
(
@TextField VARCHAR(MAX),
@Delimeter VARCHAR(1),
@TextIndicator CHAR(1) = NULL
)
AS
BEGIN
END
MSDN概述了更多详情。
作为补充说明,请尝试保持变量名称的描述性和一致性,同时检查外壳。
答案 1 :(得分:0)
CREATE PROCEDURE <ProcedureName>
-- Add the parameters for the stored procedure here
<Param1>, <Param2> ...
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
END
GO