Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 alter table не видит солонку  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
есть процедура, в которой есть строка

exec(@str)


на момент выполнения строка равна
@str='ALTER TABLE [Business].[EcoClassifier_h] ALTER COLUMN [WHost] [nvarchar] (256) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL'

получаем ошибку
16:04:34: Ошибка ALTER TABLE ALTER COLUMN failed because column 'WHost' does not exist in table 'EcoClassifier_h'.

однако колонка в таблице есть, имеет тип sysname и
ALTER TABLE [Business].[EcoClassifier_h] ALTER COLUMN [WHost] [nvarchar] (256) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL
в командном окне выполняется без каких либо ошибок

вопрос простой - что это за хрень
12 авг 16, 14:21    [19534425]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37200
Ответ еще проще -- другой сервер/база.
12 авг 16, 14:23    [19534441]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
iap
Member

Откуда: Москва
Сообщений: 47063
Stilet,

в другой базе, может быть, выполняете?
12 авг 16, 14:25    [19534453]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
базу проверил, база правильная и сервер правильный
12 авг 16, 14:41    [19534540]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
exec заменил на sp_executesql, имею ту же хрень
12 авг 16, 14:43    [19534547]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
o-o
Guest
а так?
@str='select [WHost] from [Business].[EcoClassifier_h] where 1 = 0;ALTER TABLE [Business].[EcoClassifier_h] ALTER COLUMN [WHost] [nvarchar] (256) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL'
12 авг 16, 14:52    [19534591]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Stilet,

ну так пропишите доконца DB.SCHEMA.sp_executesql
12 авг 16, 14:52    [19534594]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
o-o
а так?
@str='select [WHost] from [Business].[EcoClassifier_h] where 1 = 0;ALTER TABLE [Business].[EcoClassifier_h] ALTER COLUMN [WHost] [nvarchar] (256) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL'


думаешь это компилятору мозги на место вставит ? щас попробую.
12 авг 16, 15:00    [19534628]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37200
Stilet
базу проверил, база правильная и сервер правильный
и каким же образом вы это проверили?
12 авг 16, 15:00    [19534630]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
o-o
Guest
Stilet
o-o
а так?
@str='select [WHost] from [Business].[EcoClassifier_h] where 1 = 0;ALTER TABLE [Business].[EcoClassifier_h] ALTER COLUMN [WHost] [nvarchar] (256) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL'


думаешь это компилятору мозги на место вставит ? щас попробую.

нет, просто хочу полюбоваться на "существующую" колонку
12 авг 16, 15:02    [19534647]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
Гавриленко Сергей Алексеевич
Stilet
базу проверил, база правильная и сервер правильный
и каким же образом вы это проверили?


select db_name()
12 авг 16, 15:05    [19534667]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37200
Stilet
Гавриленко Сергей Алексеевич
пропущено...
и каким же образом вы это проверили?


select db_name()
Прямо в вашей @str вы написали? И где select @@servername?

Сообщение было отредактировано: 12 авг 16, 15:07
12 авг 16, 15:06    [19534673]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
Гавриленко Сергей Алексеевич
Stilet
базу проверил, база правильная и сервер правильный
и каким же образом вы это проверили?

я бы тоже наверное постебался )
12 авг 16, 15:07    [19534675]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
Гавриленко Сергей Алексеевич
Stilet
пропущено...


select db_name()
Прямо в вашей @str вы написали? И где select @@servername?


у нас по серверам имена баз не повторяются. но раз такая ситуация и это проверю
12 авг 16, 15:13    [19534710]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
iap
Member

Откуда: Москва
Сообщений: 47063
Может, у этого поля заданы какие-то права и не все имеют к нему доступ?
Права снаружи и внутри @str, вообще говоря, разные.
12 авг 16, 15:16    [19534726]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
iap
Может, у этого поля заданы какие-то права и не все имеют к нему доступ?
Права снаружи и внутри @str, вообще говоря, разные.


добавил в процедуру WITH EXECUTE AS 'dbo'

не помогает

есть подозрение что это началось после перехода с sql2008 на sql2014
12 авг 16, 15:25    [19534787]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
iap
Может, у этого поля заданы какие-то права и не все имеют к нему доступ?
Права снаружи и внутри @str, вообще говоря, разные.


цепочки владения на ddl, вроде, не распространялись до сих пор.
12 авг 16, 15:27    [19534794]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Konst_One
Member

Откуда:
Сообщений: 11593
выполните вместо своего alter (может что-то и прояснится):

set @str = 'select @@SERVERNAME as [server], db_name() as [database], SUSER_SNAME() as [login], USER_NAME() as [user], @@SPID as [spid], IS_MEMBER ('db_owner') as [is user db_owner]';
exec(@str);
12 авг 16, 15:29    [19534807]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
Stilet,

в одном окне выполняете:
ALTER TABLE [Business].[EcoClassifier_h] ALTER COLUMN [WHost] [nvarchar] (256) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL;
go
set @str='ALTER TABLE [Business].[EcoClassifier_h] ALTER COLUMN [WHost] [nvarchar] (256) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL';
exec(@str);

получаете ошибки для обоих вариантов. после этого можно начинать искать ошибку у себя в коде.
12 авг 16, 15:30    [19534813]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Konst_One
Member

Откуда:
Сообщений: 11593
''db_owner''


задвоить только заюыл параметр
12 авг 16, 15:30    [19534816]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
o-o
Guest
а что селект-то, видит ли колонку из того же exec?
что-то ответа не вижу
12 авг 16, 15:36    [19534834]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Konst_One
Member

Откуда:
Сообщений: 11593
ну и в ту же строчку ещё вот это бы неплохо:

SELECT * FROM fn_my_permissions ('Business', 'SCHEMA');
12 авг 16, 15:36    [19534836]     Ответить | Цитировать Сообщить модератору
 Re: alter table не видит солонку  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
Прошу прощенья, кажется зря вопрос поднял. пока ничего не понимаю, буду разбираться.
12 авг 16, 16:10    [19534966]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить