2014-09-29 156 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 +Ť)。