2014-09-29 158 views
0

是否可以在SQL Server中保存多行varchar?在varchar中插入多行

DECLARE @SQL VARCHAR(256) 
SELECT @SQL = 'SELECT 
        ID, Name 
       FROM 
        Cust' 
INSERT INTO 
    MultiLineTBL (SQL) 
VALUES 
    (@SQL) 

所以这个查询:

SELECT SQL From MultiLineTBL 

将返回:

SELECT 
    ID, Name 
FROM 
    Cust 

不是直线:

SELECT ID, NAME FROM Cust 

怎么可能保存一个多VARCHAR?

+1

它是多行。试试PRINT @SQL; Management Studio数据网格不能显示miltiline字符串 – AlexK 2014-09-29 09:43:14

回答

0

您的SQL查询具有了Syntex错误:

DECLARE @SQL VARCHAR(256) ; 
    --please update query like that 
    set @SQL = 'insert into MultiLineTBL(col1,col2) 
        SELECT ID, Name FROM Cust'; 

    --and execure like that: 
    exec(@SQL); 
0

是的,这是可以多行varchar存储在表中。实际上,您示例中的值为正确存储。

由于AlexK has correctly commented,当SQL Server Management Studio配置为在网格中返回结果时,多行值无法正确显示,并且(在网格中查看结果)必定会给您带来错误的印象。根据我的观察,SSMS在此显示模式下用一个空格替换每个控制字符,包括CR(CHAR(13))和LF(CHAR(10))。运行查询,你会看到该行分隔符实际保存之前

尝试切换到Results to Text按Ctrl +Ť)。