|
Не могу укротить ЕXEC T-SQL | ☑ | ||
|---|---|---|---|---|
|
0
dwarfadelic
16.09.15
✎
13:58
|
Пробую так
SET @sql = 'SELECT @rcount = count(*) FROM '+@dbname+'.dbo.'+@TBL+' WHERE '+@COL+' = '''+ @VAL1+'''' SET @rescount = execute(@sql) Орет Incorrect syntax near the keyword 'execute' Пробуешь так @rescount = SELECT count(*) FROM @TBL WHERE @COL = @VAL1 или так SELECT @rescount = count(*) FROM @TBL WHERE @COL = @VAL1 @TBL взята из запроса SET @CURSOR_TABLES = CURSOR SCROLL FOR SELECT TABLE_NAME FROM TFlexDOCs2012_for_test.INFORMATION_SCHEMA.TABLES FETCH NEXT FROM @CURSOR_TABLES INTO @TBL Орет Must declare the table variable "@TBL". |
|||
|
1
ДенисЧ
16.09.15
✎
13:59
|
execute_sql
|
|||
|
2
dwarfadelic
16.09.15
✎
14:08
|
exec sp_execute_sql @sql
орет Сообщение 2812, уровень 16, состояние 62, строка 41 Could not find stored procedure 'sp_execute_sql'. |
|||
|
3
ДенисЧ
16.09.15
✎
14:10
|
sp_executesql
|
|||
|
4
dwarfadelic
16.09.15
✎
14:57
|
SET @sql = N'SELECT @rcount = count(*) FROM '+@dbname+'.dbo.['+@TBL+'] WHERE ['+@COL+'] Like ''%'+ @SRCH+'%'''
IF @DBG='true' BEGIN PRINT @sql END SET @rescount = 0; EXECUTE sp_executesql @sql, N'@rcount int OUTPUT', @rcount=@rescount IF @rescount>0 BEGIN PRINT 'Найдено в '+@TBL END Почему-то не меняется значение переменной @rescount . Хотя запрос вроде выдает в одном из случаев |
|||
|
5
ДенисЧ
16.09.15
✎
14:59
|
а почему оно должно присваиваться?
так попробуй SET @sql = N'SELECT count(*) FROM '+@dbname+'.dbo.['+@TBL+'] WHERE ['+@COL+'] Like ''%'+ @SRCH+'%''' |
|||
|
6
dwarfadelic
16.09.15
✎
15:04
|
Но мыже пишем @rcount = count(*) и EXECUTE sp_executesql @sql, N'@rcount int OUTPUT', @rcount=@rescount это значит мы говорим этой хранимой процедуре. Как мне передать OUTPUT ?
|
|||
|
7
dwarfadelic
16.09.15
✎
15:10
|
Все понял - EXECUTE sp_executesql @sql, N'@rcount int OUTPUT',@rcount = @rescount OUTPUT
|
| Форум | Правила | Описание | Секции | Поиск |