在varchar中插入多行
问题描述:
是否可以在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?
答
您的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);
答
是的,这是可以多行varchar
存储在表中。实际上,您示例中的值为正确存储。
由于AlexK has correctly commented,当SQL Server Management Studio配置为在网格中返回结果时,多行值无法正确显示,并且(在网格中查看结果)必定会给您带来错误的印象。根据我的观察,SSMS在此显示模式下用一个空格替换每个控制字符,包括CR(CHAR(13)
)和LF(CHAR(10)
)。运行查询,你会看到该行分隔符实际保存之前
尝试切换到Results to Text
(按Ctrl +Ť)。
它是多行。试试PRINT @SQL; Management Studio数据网格不能显示miltiline字符串 – AlexK 2014-09-29 09:43:14