Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Не пойму одну вещь: допустим, надо создать такую процедуру CREATE spCountRecords(@paramName CHAR(80), @paramCount INT OUTPUT) AS SELECT @paramCount=COUNT(*) from @paramName GO Где @paramName - это имя таблицы, а @paramCount - возвращаемое число записей в последней. При сохранении процедуры выскакивает окошко, что не определена переменная @paramName, что странно, т.к. в MSDN написано, что с передаваемымми переменными можно работать как с обычными. Как быть? Или, может кто знает лучший способ подстчета кол-ва записей в таблице??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2002, 10:20 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Во-первых CREATE procedure spCountRecords(@paramName CHAR(80... Во-вторых SELECT @paramCount=COUNT(*) from @paramName У вас @paramName определана как строковая переменная, как же из ней можно делать FROM? Это должна быть таблица или (для 2000) таблица-переменная (которая как параметр всё-равно не передаётся) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2002, 11:17 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
CREATE PROCEDURE spCountRecords(@paramName CHAR(80), @paramCount INT OUTPUT) AS declare @dynsql NVARCHAR(4000) set @dynsql=N'SELECT @paramCount=COUNT(*) from '+@paramName exec sp_executesql @dynsql, N'@paramCount int OUTPUT', @paramCount OUTPUT GO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2002, 11:21 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
В той же самой МСДН написано для предложения FROM следующее: [ FROM { < table_source > } [ ,...n ] ] < table_source > ::= table_name [ [ AS ] table_alias ] [ WITH ( < table_hint > [ ,...n ] ) ] | view_name [ [ AS ] table_alias ] [ WITH ( < view_hint > [ ,...n ] ) ] | rowset_function [ [ AS ] table_alias ] | user_defined_function [ [ AS ] table_alias ] | derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ] | < joined_table > < joined_table > ::= < table_source > < join_type > < table_source > ON < search_condition > | < table_source > CROSS JOIN < table_source > | [ ( ] < joined_table > [ ) ] < join_type > ::= [ INNER | { { LEFT | RIGHT | FULL } [ OUTER] } ] [ < join_hint > ] JOIN Нигде ни слова про то, что вместо table_name можно указать переменную. Очевидно, что поэтому и ругается. Альтернативного способа подсчета числа записей не скажу, но как можно оформить процедурку...: create proc spCountRecords @paramName nchar(80), @paramCount int out as declare @String as nvarchar(2000) set @String = N'select @paramCount = COUNT(*) from ' + @paramName exec sp_executesql @String, N'@paramCount int out', @paramCount out go ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2002, 11:32 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3511&tid=1824167]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 304ms |

| 0 / 0 |
