Advertisement
Guest User

Untitled

a guest
Jul 24th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. ------------Example Nr 1--------------
  2. --Working querry without variable Table
  3.  
  4. DECLARE @Sql nvarchar(MAX);
  5. SET @Sql = 'SELECT ';
  6. SELECT @Sql = @Sql +'['+[Modell Pset (S1 Slab)]+']'+ ' AS ''' +''+[C3D Pset (S1 Slab)]+''', ' FROM [MTO_Psets_S1_Slab]
  7. print @sql
  8.  
  9. --Result of "print @sql": SELECT [c3d:abschnitt] AS 'Abschnitt', [ALL] AS 'Eigenschaft_1', [ALL] AS 'Eigenschaft_2', [Geschoss] AS 'Geschoss', [ALL] AS 'Ist_Aussen', [ALL] AS 'Material_1', [ALL] AS 'Material_2', [ALL] AS 'Objekt', [c3d:teilprojekt] AS 'Teilprojekt',
  10.  
  11. SET @Sql = (SELECT LEFT(@Sql, LEN(@Sql)-1));
  12. SET @Sql = @Sql + ' FROM [modell_properties_slab]';
  13. EXEC sp_executesql @Sql;
  14.  
  15.  
  16.  
  17. ------------Example Nr 2--------------
  18. --When i replace Table with a variable, the querry doesn't work
  19.  
  20. DECLARE @Sql nvarchar(MAX);
  21. DECLARE @Table nvarchar(MAX);
  22. set @table='[MTO_Psets_S1_Slab]'
  23. SET @Sql = 'SELECT ';
  24. SELECT @Sql = @Sql +'['+[Modell Pset (S1 Slab)]+']'+ ' AS ''' +''+[C3D Pset (S1 Slab)]+''', ' FROM @table
  25. SET @Sql = (SELECT LEFT(@Sql, LEN(@Sql)-1));
  26. SET @Sql = @Sql + ' FROM [modell_properties_slab]';
  27. EXEC sp_executesql @Sql
  28.  
  29. --Error message: Msg 1087, Level 16, State 1, Line 24 Must declare the table variable "@Table".
  30.  
  31.  
  32.  
  33. ------------Example Nr 3--------------
  34. --When i rewrite the querry to have the table inside the apostrophes, it doesn't work (compare the result of "print @sql" with the example nr1)
  35.  
  36. declare @slab nvarchar(MAX) ='slab'
  37. DECLARE @intermediate_step nvarchar(MAX);
  38. set @intermediate_step = '''[''[Modell Pset (S1 Slab)]+'']''+ '' AS '''''' +''''+[C3D Pset (S1 Slab)]+'''''', '' FROM [MTO_Psets_S1_'+@Slab+']'
  39. print @intermediate_step
  40.  
  41. --Result of "print @intermediate_step": '['[Modell Pset (S1 Slab)]+']'+ ' AS ''' +''+[C3D Pset (S1 Slab)]+''', ' FROM [MTO_Psets_S1_slab]
  42.  
  43. DECLARE @Sql nvarchar(MAX);
  44. SET @Sql = 'SELECT ';
  45. SELECT @Sql = @Sql + @intermediate_step
  46. print @sql
  47. --Result of "print @sql": SELECT '['[Modell Pset (S1 Slab)]+']'+ ' AS ''' +''+[C3D Pset (S1 Slab)]+''', ' FROM [MTO_Psets_S1_slab]
  48.  
  49. SET @Sql = (SELECT LEFT(@Sql, LEN(@Sql)-1));
  50. SET @Sql = @Sql + ' FROM [modell_properties_slab]';
  51. EXEC sp_executesql @Sql;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement