Я настоятельно рекомендую не использовать set exrc
Даже с set secure
, под * nix, vim все равно будет запускать автокоманды, shell и т. д., если вы являетесь владельцем файла. Поэтому, если вы решили отредактировать файл в этом tarball, я отправил вас с .vimrc
, содержащим:
autocmd BufEnter * :silent! !echo rm -rf ~/
, вы, вероятно, будете менее забавны, чем я.
Если я правильно понял вашу проблему, думаю, вы могли бы динамически генерировать запрос, который вы хотите использовать, используя следующий код:
DECLARE @SQL nvarchar(max) = 'SELECT ',
@TBL1 nvarchar(50) = 'data',
@TBL2 nvarchar(50) = 'data1',
@EXCLUDEDCOLUMNS nvarchar(100)= 'ID,col1'
-- column selection
SELECT @sql += @tbl1 + '.' + COLUMN_NAME + ' ,
'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TBL1
-- from clause and remove last ,
set @SQL = LEFT(@sql,LEN(@sql) - 5)
SET @sql += '
FROM ' + @TBL1 + ' INNER JOIN
' + @TBL2 + '
ON '
-- define the on clause
SELECt @SQL += @tbl1 + '.' + COLUMN_NAME + ' = '+ @tbl2 + '.' + COLUMN_NAME +',
'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TBL1
AND COLUMN_NAME not in (@EXCLUDEDCOLUMNS)
--remove last ,
set @SQL = LEFT(@sql,LEN(@sql) - 3)
--SELECt @SQL
EXEC SP_EXECUTESQL @sql
Перед выполнением убедитесь, что @sql сформирован правильно. выберите столбцы, которые вы хотите исключить из предложения on, используя параметр @EXCLUDEDCOLUMNS.