¿Alguna idea de si es posible crear un procedimiento en otra base de datos usando solo T-SQL, donde el nombre de la base de datos no se conoce desde el principio y debe leerse desde una tabla? Algo así como este ejemplo:Crear procedimiento almacenado en otra base de datos
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+']'[email protected]+
'Go'[email protected]+
'Create Proc [Test] As Select 123'
Exec (@SQL)
¿Ves lo que estoy tratando de hacer? Este ejemplo falla porque Go no es realmente un comando T-SQL, sino algo reconocido por el analizador de consultas/el estudio de administración SQL y produce un error. Quite Go y también falla porque Create Proc debe ser la primera línea del script. Arrgg !!
La sintaxis de T-SQL no le permite hacer cosas como esta:
Crear [OtherDatabase] [dbo] [Test]
Lo cual es una lástima, ya que funcionaría un convite.. ! Usted puede hacer eso con instrucciones SELECT, la vergüenza es inconsistente:
Select * From [OtherDatabase] .. [thetable]
Cheers, Rob.
¿Qué pasaría si el cambio primera base de datos con el ejecutivo y luego Exec storedproc? –
Lo haría así también: primero envíe la parte antes de "ir", luego (en una segunda instrucción SQL) envíe "crear proceso ..." –