2013-01-04 74 views
0

我知道你可以截断表或表变量,但有没有办法也截断一个变量?SQL Server变量截断

DECLARE @HiddenMe NVARCHAR(MAX) 

SET @HiddenMe = (select XYZ.abc) 

If LEN(@HiddenME) >= 1800000 Then would like to truncate @HiddenMe . 

请让我知道。 FYI,我正在使用sql 2008

+0

你能对你的意思是'TRUNCATE'阐述什么在这种情况下? (顺便说一句,你**不能**截断表变量。 –

回答

2

通过截断,我假设你的意思是截断所有数据过去某个点,而不是删除所有数据(如表截断)。这应该工作。

SET @HiddenMe=SUBSTRING(@HiddenMe,1,1800000) 
+0

这就是我想要的。谢谢! – user1681514

1

您可以使用LEFT()

set @HiddenME = left(@HiddenME, 1800000) 

所以,你的脚本会是这样:

DECLARE @HiddenMe NVARCHAR(MAX) 

SET @HiddenMe = 'lets test a longish string to trim after a certain number of characters' 

if LEN(@HiddenME) >= 1800000 
    set @HiddenME = left(@HiddenME, 1800000) 

SQL Fiddle with Demo