Есть идеи, если возможно создать процедуру в другой базе данных, используя только T-SQL, где имя базы данных не известно заранее и должно быть прочитано из таблицы? Вроде как этот пример:
Use [MasterDatabase]
Declare @FirstDatabase nvarchar(100)
Select Top 1 @FirstDatabase=[ChildDatabase] From [ChildDatabases]
Declare @SQL nvarchar(4000)
Declare @CRLF nvarchar(10) Set @CRLF=nchar(13)+nchar(10)
Set @SQL =
'Use [+'@Firstdatabase+']'+@CRLF+
'Go'+@CRLF+
'Create Proc [Test] As Select 123'
Exec (@SQL)
Видишь, что я пытаюсь сделать? Этот пример дает сбой, потому что Go на самом деле не является командой T-SQL, а распознается анализатором запросов / студией управления SQL и выдает ошибку. Удалите Go, и это также не удастся, потому что Create Proc должен быть первой строкой скрипта. Arrgg !!
Синтаксис T-SQL не позволяет вам делать такие вещи:
Создать [OtherDatabase]. [Dbo]. [Test]
Какой позор, потому что это доставит удовольствие! Вы можете сделать это с помощью операторов Select, к сожалению, это противоречиво:
Выбрать * Из [OtherDatabase] .. [TheTable]
Приветствия, Роб.