SQL。正在尝试在SQL上创建存储过程,但不确定查询是否正确
创建一个SQL存储过程,将字符串解析为以前未知数量的字段。投入将是SQL。正在尝试在SQL上创建存储过程,但不确定查询是否正确,sql,sql-server,tsql,Sql,Sql Server,Tsql,创建一个SQL存储过程,将字符串解析为以前未知数量的字段。投入将是 长度不确定的文本字符串 分隔符,作为字符串传递 一个可为空的列,如果相关,它将作为单个字符串传递文本指示符 结果表将完全依赖于用作输入的字符串 请帮忙,因为我想不出来。我知道这是错误的,但我不知道从哪里开始 以下是我迄今为止所尝试的: DECLARE @l INT, @c VARCHAR(MAX) = '' SELECT @l = MAX(LEN(n)) FROM AdventureWOrk DECLARE @s NVARCHA
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]
可以使用以下语法创建存储过程:
CREATE PROCEDURE usp_YourProcedure
AS
BEGIN
-- Your logic
END
您可以将已有的代码放入BEGIN
语句中
要执行存储过程,可以执行以下操作:
EXEC usp_YourProcedure
要添加参数,只需在CREATE过程
声明后声明即可
CREATE PROCEDURE usp_YourProcedure
(
@TextField VARCHAR(MAX),
@Delimeter VARCHAR(1),
@TextIndicator CHAR(1) = NULL
)
AS
BEGIN
END
然后使用参数执行:
EXEC usp_YourProcedure 'String literal, with commas, which will, be stripped out by the delimiter', ','
详情请参阅
另外,请注意,尽量保持变量名的描述性和一致性,同时检查大小写。CREATE PROCEDURE
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
--在此处添加存储过程的参数
, ...
像
开始
--已添加SETNOCOUNT以防止额外的结果集干扰SELECT语句。
不计数;
--在此处插入过程的语句
终止
去
请在发布前先使用语法要求。MSDN不仅胜过任何其他文档,而且您将知道术语是什么。感谢您的帮助!最后一步该怎么做?可空字段part@MavsNation-不客气。只需添加NULL
作为默认值,如我的答案所示。