Hello,I thought this was a neat solution I came up with, but I'm sure it's been thought of before. Anyway, it's my first post here.We have a process for importing data which generates a SELECT statement based on user's stored configuration. Since the resulting SELECT statementcan be massive, it's created and stored in a text field in a temp table.So how do I run this huge query after creating it? In my tests, I was getting a datalength > 20000, requiring 3 varchar(8000) variables inorder to use the execute command. Thing is, I don't know how big it couldpossibly get, I wanted to be able to execute it regardless.Here's what I came up with, it's very simple:Table is named #IMPORTQUERY, one field SQLTEXT of type TEXT.>> declare @x int, @s varchar(8000) select @x = datalength(sqltext) / 8000 + 1, @s = 'execute('''')' from #importquery while @x > 0 select @s = 'declare @s' + cast(@x as varchar) + ' varchar(8000) ' + 'select @s' + cast(@x as varchar) + '=substring(sqltext,@x,@x+8000),@x=@x+8000 from #importquery ' + replace(@s,'execute(','execute(@s' + cast(@x as varchar) + '+') , @x = @x - 1 set @s = 'declare @x int set @x=1 ' + @s execute(@s)<<
At the end, I execute the "@s" variable which is SQL that builds andexecutes the massive query. Here's what @s looks like at the end:>>declare @x int set @x=1 declare @s1 varchar(8000) select @s1=substring(sqltext,@x,@x+8000),@x=@x+8000 from #importquery declare @s2 varchar(8000) select @s2=substring(sqltext,@x,@x+8000),@x=@x+8000 from #importquery declare @s3 varchar(8000) select @s3=substring(sqltext,@x,@x+8000),@x=@x+8000 from #importquery execute(@s1+@s2+@s3+'')<<