Этот блок кода не работает:Простой, если оператор не работает (сравнение строк)
DECLARE @CollationName varchar(50)
set @CollationName = (
select collation_name
from information_schema.columns
where table_name = 'MeteringPointPrice' and column_name = 'MeteringPointId'
)
if OBJECT_ID('tempdb..#MPLIST2') IS NOT NULL
drop table #MPLIST2
if @CollationName = 'SQL_Danish_Pref_CP1_CI_AS'
create table #MPLIST2 (MeteringPointId varchar(18) COLLATE SQL_Danish_Pref_CP1_CI_AS)
if @CollationName = 'Danish_Norwegian_CI_AS'
create table #MPLIST2(MeteringPointId varchar(18) COLLATE Danish_Norwegian_CI_AS)
select @CollationName gives: Danish_Norwegian_CI_AS
Но и если заявления выполняются так временной таблицы # MPLIST2 создается в 2 раза, что, конечно, дает ошибку ,
Я не могу понять, почему.
Вот код немного изменился:
DECLARE @CollationName varchar(50)
set @CollationName = (
select collation_name
from information_schema.columns
where table_name = 'MeteringPointPrice' and column_name = 'MeteringPointId'
)
if OBJECT_ID('tempdb..#MPLIST2') IS NOT NULL
drop table #MPLIST2
if @CollationName = 'Danish_Norwegian_CI_AS'
begin
create table #MPLIST2 (MeteringPointId varchar(18) COLLATE Danish_Norwegian_CI_AS)
end
if OBJECT_ID('tempdb..#MPLIST2') IS NULL
begin
select 'hellooo'
--create table #MPLIST2 (MeteringPointId varchar(18) COLLATE SQL_Danish_Pref_CP1_CI_AS)
end
Эта часть выполняет успешно без 'Hellooo'. Но если я прокомментирую в строке «create table» ниже, то она даст ошибку «В базе данных уже есть объект с именем« # MPLIST2 ».»
Тег используемого dbms. (Вдали от ANSI SQL ...) – jarlh
Если уже есть вкладка e с этим именем, возможно, вы должны отказаться от него, прежде чем воссоздать его..) – schlonzo
Jarlh, извините. Это tsql. –