Кто-нибудь знает, возможно ли использовать SQLCMD в динамическом SQL?Я думаю, что PowerShell может это сделать, и я попробую, если это невозможно в TSQL.
Я ищу что-то вроде этого:
USE [master]
GO
DECLARE @LinkedServerName NVARCHAR(100) = N'MyServer'
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = ':connect SQL-D-16T3022' + CHAR(13) + CHAR(13)
SET @SQL = @SQL + 'EXEC master.dbo.sp_addlinkedserver @server = N''' + @LinkedServerName + ''', @srvproduct=N''' + @LinkedServerName + ''', @provider=N''OraOLEDB.Oracle'', @datasrc=N''' + @LinkedServerName + ''''
EXEC sp_executesql @SQL
--> Incorrect syntax near ':'.
Это приводит к синтаксисуошибка, которая имеет смысл, потому что выполнение динамического кода SQL не находится в режиме SQLCMD.
Есть ли способ сделать это?
Спасибо.