Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ------------Example Nr 1--------------
- --Working querry without variable Table
- DECLARE @Sql nvarchar(MAX);
- SET @Sql = 'SELECT ';
- SELECT @Sql = @Sql +'['+[Modell Pset (S1 Slab)]+']'+ ' AS ''' +''+[C3D Pset (S1 Slab)]+''', ' FROM [MTO_Psets_S1_Slab]
- print @sql
- --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',
- SET @Sql = (SELECT LEFT(@Sql, LEN(@Sql)-1));
- SET @Sql = @Sql + ' FROM [modell_properties_slab]';
- EXEC sp_executesql @Sql;
- ------------Example Nr 2--------------
- --When i replace Table with a variable, the querry doesn't work
- DECLARE @Sql nvarchar(MAX);
- DECLARE @Table nvarchar(MAX);
- set @table='[MTO_Psets_S1_Slab]'
- SET @Sql = 'SELECT ';
- SELECT @Sql = @Sql +'['+[Modell Pset (S1 Slab)]+']'+ ' AS ''' +''+[C3D Pset (S1 Slab)]+''', ' FROM @table
- SET @Sql = (SELECT LEFT(@Sql, LEN(@Sql)-1));
- SET @Sql = @Sql + ' FROM [modell_properties_slab]';
- EXEC sp_executesql @Sql
- --Error message: Msg 1087, Level 16, State 1, Line 24 Must declare the table variable "@Table".
- ------------Example Nr 3--------------
- --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)
- declare @slab nvarchar(MAX) ='slab'
- DECLARE @intermediate_step nvarchar(MAX);
- set @intermediate_step = '''[''[Modell Pset (S1 Slab)]+'']''+ '' AS '''''' +''''+[C3D Pset (S1 Slab)]+'''''', '' FROM [MTO_Psets_S1_'+@Slab+']'
- print @intermediate_step
- --Result of "print @intermediate_step": '['[Modell Pset (S1 Slab)]+']'+ ' AS ''' +''+[C3D Pset (S1 Slab)]+''', ' FROM [MTO_Psets_S1_slab]
- DECLARE @Sql nvarchar(MAX);
- SET @Sql = 'SELECT ';
- SELECT @Sql = @Sql + @intermediate_step
- print @sql
- --Result of "print @sql": SELECT '['[Modell Pset (S1 Slab)]+']'+ ' AS ''' +''+[C3D Pset (S1 Slab)]+''', ' FROM [MTO_Psets_S1_slab]
- SET @Sql = (SELECT LEFT(@Sql, LEN(@Sql)-1));
- SET @Sql = @Sql + ' FROM [modell_properties_slab]';
- EXEC sp_executesql @Sql;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement