SELECT (select '1') as [a], (select '2') as [b], (select '3') as [c]
? @echo off
echo -- Архивирование базы данных
osql -S SDATA -E -i Move.backup.sql -n
echo -- Перенос данных
copy \\SDATA\Data\MSSQL\BACKUP\QBill.move.bak \\SWEB\D$\MSSQL\QBill.move.bak
echo -- Восстановление базы данных
osql -S SWEB -E -i Move.restore.sql -n
BACKUP LOG [General] WITH NO_LOG
GO
--
DBCC SHRINKDATABASE ([General])
GO
--
BACKUP DATABASE [General]
TO DISK = 'D:\MSSQL\BACKUP\QBill.move.bak'
WITH INIT, NOUNLOAD, NAME = 'General home backup', NOSKIP, STATS = 5, NOFORMAT
GO
RESTORE DATABASE [General]
FROM DISK = 'D:\MSSQL\QBill.move.bak' WITH FILE = 1, NOUNLOAD, STATS = 5, REPLACE,
MOVE 'General_Log' TO 'D:\MSSQL\General.log',
MOVE 'General_Data' TO 'D:\MSSQL\General.mdf',
MOVE 'General_Event' TO 'D:\MSSQL\General.ndf'
Когда вы используете константу, значение известно оптимизатору, поэтому может определять селективность (и возможное использование индекса) на основе этого. Когда вы используете переменную, значение неизвестно оптимизатору.
похоже вариантов решения немного...Личный опыт: при освоении MS SQL, обратил внимание, что промежуточный слой ADO, иногда меняет в реальном запросе константы на переменные и наоборот. При использовании хранимых процедур план запроса строится и кэшируется при её создании. Это одна из причин оборачивать в процедуру запрос даже без дополнительных обработок.
запрос начнет отрабатывать без старых кэшированных данных
SELECT CAST( GETDATE() AS DATE), CAST( GETDATE() AS TIME)
SELECT CONVERT(varchar(10), Photo, 2) FROM Photo
Для JPG должно быть FFD8FFE000
Первые 10 символов: ACED000575
Т.е. если не знать, что система туда подмешивает, данные не получится нормально достать?