Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Почему это работало в 7 а в 2К нет?
|
|||
|---|---|---|---|
|
#18+
Господа, представленный код (не спорю что он корявый и можно куда лучше накрапать) предназначался для пересчета всех записей во всех таблицах базы данных (на случай необновленной статистики в последней). На 7-ке этот код исправно генерил вполне сносный репорт, и все были довольны. Но вот днями проставил инстанс 2000-го, а заодно третью паку к 7. И теперь он меня кастерит (думаю заслуженно) - но все равно никак не могу заставить работать. Мнение сообщества и совокупный опыт будут как нельзя более полезны. Заранее благодарен. declare @name sysname declare @sqlstat nvarchar(250) print 'Row counting performed on ' + cast(getdate() as varchar)+ '.' print 'Inspecting ' + upper(db_name()) +' database on ' + upper(isnull(@@servername, 'local')) + ' server.' declare @tables int select @tables = count(name) from sysobjects where type = 'u' print 'Current database contains ' + cast(@tables as varchar) + ' user defined table(s):' declare rowcountintables cursor for select name from sysobjects where type = 'u' order by name open rowcountintables fetch next from rowcountintables into @name while @@fetch_status = 0 begin set @sqlstat = N'declare @rows int' + char(13) set @sqlstat = @sqlstat + N'select @rows = count(*)' set @sqlstat = @sqlstat + N'from ['+ cast(@name as nvarchar) + N']'+ char(13) set @sqlstat = @sqlstat + N'print "Table ' + cast(@name as varchar) set @sqlstat = @sqlstat + N' has "+ cast(@rows as varchar) +" row(s)."' --ПРОБЛЕМА ГДЕ-ТО ЗДЕСЬ exec sp_executesql @sqlstat fetch next from rowcountintables into @name end deallocate rowcountintables go ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2001, 11:04 |
|
||
|
Почему это работало в 7 а в 2К нет?
|
|||
|---|---|---|---|
|
#18+
"он меня кастерит" - а подробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2001, 11:13 |
|
||
|
Почему это работало в 7 а в 2К нет?
|
|||
|---|---|---|---|
|
#18+
MSSQL не всегда лояльно относится к двойным кавычкам. Лучше переписать код так, чтобы в строку попали только одинарные кавычки с помощью CHAR(39). Хотя можешь еще потыркаться с настройкой SET QUOTED_IDENTIFIER { ON | OFF } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2001, 11:19 |
|
||
|
Почему это работало в 7 а в 2К нет?
|
|||
|---|---|---|---|
|
#18+
set @sqlstat = @sqlstat + N'print ''Table ' + cast(@name as varchar) set @sqlstat = @sqlstat + N' has ''+ cast(@rows as varchar) +'' row(s).''' Как правильно заметил Глеб Уфимцев проблема была в двойных кавычках их надо заменит на 2 одинарных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2001, 11:28 |
|
||
|
Почему это работало в 7 а в 2К нет?
|
|||
|---|---|---|---|
|
#18+
>alexeyvg Server: Msg 128, Level 15, State 1, Line 1 The name 'Table ACCT has ' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted. Server: Msg 128, Level 15, State 1, Line 1 The name 'Table ACCT_EXT_XREF has ' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted. и т.д. и т.п. на каждую таблицу >Глеб Уфимцев и Glory Завидую Вашему интеллекту и опыту - сработало, черт бы ее подрал! Спасибо!!! Искренне .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2001, 11:45 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3555&tid=1825926]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 257ms |
| total: | 401ms |

| 0 / 0 |
