Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将xml拆分为多行以执行RAISERROR insert触发器_Sql Server_Xml_Triggers - Fatal编程技术网

Sql server 将xml拆分为多行以执行RAISERROR insert触发器

Sql server 将xml拆分为多行以执行RAISERROR insert触发器,sql-server,xml,triggers,Sql Server,Xml,Triggers,我的insert触发器中的以下代码返回一行中的所有值。如果用户一次输入1-10行,则可以,但如果用户输入100行,则raiserror输出将变得太长,无法读取。请问最好的解决方案是什么 触发代码: DECLARE @level_name nvarchar(MAX) = ( SELECT concat ([S_ID],'-', [l_NAME], '-') + ' ' FROM inserted

我的insert触发器中的以下代码返回一行中的所有值。如果用户一次输入1-10行,则可以,但如果用户输入100行,则raiserror输出将变得太长,无法读取。请问最好的解决方案是什么

触发代码:

 DECLARE @level_name nvarchar(MAX) =
            (
            SELECT concat ([S_ID],'-', [l_NAME], '-')
             + '  '
            FROM inserted ic 
            where not EXISTS (SELECT 1 FROM [dbo].[LEVELS] c 
                  WHERE ic.[geo]=c.[GEO] and c.level_name=ic.[l_NAME] 
                            )
            FOR XML PATH('')
             );

        IF @level_name IS NOT NULL
            BEGIN
                RAISERROR('level name not found: %s', 16, 1, @level_name) with log;
            END;
输出:

100-A2001 101-A2001 102-A2001 .......

如果在每个级别后添加新行会怎么样?

谢谢,但我该怎么做?是否有方法循环RAISERROR?可以在连接级别时添加新行。例如:选择concat[S_ID]、“-”、[l_NAME]、“-”、CHAR13。。。CHAR13是新产品线的代码,刚做到这一点,但它添加了100-&x0D;SOA2001 101-&x0D;SOA2001仍然在一行中,这是因为您使用的是FOR XML路径。它将新行转换为字符。另一种方法是:创建表MyStringsvalue VARCHARMAX;在myString中插入值'first'、'second'、'third';声明结果VARCHARMAX=;选择Result=ISNULLvalue,+''+CHAR13+来自MyStrings的结果;选择结果;删除表MyStrings;