понедельник, 27 июля 2015 г.

table as range(10000)

В mssql для получения таблицы, содержимое которой имеет вид списка (массива) диапазона чисел, следует использовать такой трюк:

CREATE TABLE dbo.TEST (ID INT IDENTITY (1,1), ROWID uniqueidentifier) 
GO 
INSERT INTO dbo.TEST (ROWID) VALUES (NEWID())  
GO 10000
Получим таблицу:
ID ROWID
1 05BACEAB-44D5-4758-A345-335941CAF5A7
2 B321648E-AFAE-47F8-B98D-E837776F9494
3 3E616A7D-6A59-4EF8-9748-7F12F77B47D3
4 C8E96D35-C4CE-4B9D-A053-E398BD20AF96
5 A76CA6F2-2E96-4AC7-8058-128BB399790E

(На всякий случай получили уникальный rowid).

среда, 23 апреля 2014 г.

t-sql Выполнение транзакции на связанных серверах

1) Выполнение простой инструкции:
EXEC(<sql_statement>) at <LinkedServerName>
2) Выполнение инструкции непосредственно в базе связанного сервера
EXEC('exec tempdb.dbo.sp_executesql @statement =N''create procedure testx as begin select 1 end''') AT <LinkedServername>