Есть ли способ сценария данных таблицы (временные таблицы тоже) в MS SQL 2000? - PullRequest
1 голос
/ 04 октября 2008

Учитывая таблицу или временную таблицу, я хотел бы запустить процедуру, которая выведет сценарий SQL (т. Е. Набор операторов INSERT), который будет заполнять таблицу. Возможно ли это в MS SQL Server 2000?

Ответы [ 3 ]

1 голос
/ 04 октября 2008

Простой подход:

SELECT 'INSERT INTO table (col1, col2, col3) VALUES ('
    '''' + col1 + ''', '
    '''' + col2 + ''', '
    '''' + col3 + ''')'
FROM table

Более сложным подходом было бы написать процедуру, которая строит оператор INSERT путем проверки схемы таблицы, но я никогда не находил реальной необходимости сделать это на практике.

1 голос
/ 04 октября 2008

Кто-то еще пробовал это здесь . Пожалуйста, посмотрите.

1 голос
/ 04 октября 2008

Вы можете создать скрипт для этого, используя курсор. Я только что сделал один вчера. Вы можете получить идею из этого.

DECLARE MY_CURSOR Cursor 

FOR
Select Year, HolidayId, Date, EffBegDate, isnull(EffEndDate,'') AS EffEndDate, ChangedUser From HolidayDate

Open My_Cursor 

DECLARE @Year varchar(50), @HolidayId varchar(50), @Date varchar(50), @EffBegDate varchar(50), @EffEndDate varchar(50), @ChangedUser varchar(50)

Fetch NEXT FROM MY_Cursor INTO @Year, @HolidayId, @Date, @EffBegDate, @EffEndDate, @ChangedUser
While (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)

print 'INSERT INTO [Employee3].[dbo].[HolidayDate]([Year],[HolidayId],[Date],[EffBegDate],[EffEndDate],[ChangedUser])'
print 'VALUES ('''+@Year+''','''+@HolidayId+''','''+@Date+''','''+@EffBegDate+''','''+@EffEndDate+''','''+@ChangedUser+''')'

FETCH NEXT FROM MY_Cursor INTO @Year, @HolidayId, @Date, @EffBegDate, @EffEndDate, @ChangedUser
END
CLOSE MY_CURSOR
DEALLOCATE MY_CURSOR
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...