Это выполнение дает мне следующую ошибку:
Msg 102, Level 15, State 1, Line 5
Incorrect syntax near 'go'.
Msg 111, Level 15, State 1, Line 11
'CREATE/ALTER PROCEDURE' must be the first statement in a query batch.
Если я уберу "GO", это даст мне только второй.
Любые намеки на то, что я пропускаю?
declare @dbname varchar(500)
set @dbname='master'
Exec ('
Use ' + @dbname + '
go
create PROCEDURE [dbo].[krijo_database] @dbname nvarchar(2000), @Direktoria varchar(4000)
AS
BEGIN
declare @stringu nvarchar(100)
set @stringu =
''CREATE DATABASE '' + @dbname
exec (@stringu)
End
')
Ответ
declare @dbname varchar(500)
set @dbname='kontabel'
Exec(
'Use ' + @dbname +'
Exec (''
create PROCEDURE [dbo].[krijo_database] @dbname nvarchar(2000), @Direktoria varchar(4000)
AS
BEGIN
declare @stringu nvarchar(100)
set @stringu =
''''create DATABASE '''' + @dbname
exec (@stringu)
End
'')
')
На самом деле я пытался так, и это работало, но мне пришлось менять кавычки.
Реальная процедура, которую я хотел бы использовать, - это более 50000 строк, и я не могу пойти и вручную изменить кавычки на все.
Есть ли лучший способ?