Re[3]: Динамический SQL запрос
От: LantY Россия icq:56949749
Дата: 22.10.03 08:06
Оценка: 1 (1)
Здравствуйте, deepsky, Вы писали:

E_>>DECLARE @sSQL varchar(8000), @sCr char(1)

E_>>SET @sCR = char(13)
E_>>SET @sSQL = 'IF EXISTS (SELECT * FROM sysobjects' + @sCr +
E_>> 'WHERE name = ''' + @namUsp + ''' AND ' +
E_>> 'type = ''P'' AND ' +
E_>> 'uid = ' + CONVERT(varchar(100), USER_ID()) + ')' + @sCr +
E_>> 'DROP PROC ' + USER_NAME () + '.' + @namUsp
E_>>EXECUTE (@sSQL)
E_>>Если 8000 мало, то
E_>>EXECUTE (@sSQL1 + @sSQL2) и т.д.
E_>>Намного проще, чем в Oracle

D>Может Прекрасная Елена_ скажет чем он сложнее запроса в MSSQL?

Ну в Оракле тоже можно писать левой ногой из-за правого плеча...
Я провда совершенно не въехал как можно вызывать USER_ID() и USER_NAME() без параметров, но тем не менее.
DECLARE @sSQL nvarchar(255)
DECLARE @pDef nvarchar(255)
SET @sSQL = N'IF EXISTS (SELECT * FROM sysobjects WHERE name = @namUsp AND type = ''P'' AND uid = USER_ID()) DROP PROC @namUsp'
SET @pDef = N'@namUsp nvarchar(50)'
EXECUTE  sp_executesql @sSQL, @pDef, @namUsp = @param
С уважением, Дмитрий.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.