Как мне сценарий моей таблицы для генерации команд INSERT INTO? - PullRequest
1 голос
/ 26 октября 2009

У меня есть справочная таблица с примерно 10 записями, я знаю, что могу записать структуру в текстовый файл, но как мне записать данные для вставки в команды?

Ответы [ 6 ]

5 голосов
/ 26 октября 2009

Десять записей, и это срочно?

Просто введите его вручную. Должно быть довольно легко вырезать и вставлять.

2 голосов
/ 26 октября 2009

Предполагая, что SQL Server ...

SQL Management Studio сгенерирует скрипт вставки. Щелкните правой кнопкой мыши свою базу данных и выберите «Задачи-Экспорт данных»

.
2 голосов
/ 26 октября 2009

Сделайте что-то вроде этого:

select "insert into my_targ_table(my_field_1, my_field_2, ..., my_field_n) values(" || x.my_field_1_col || ", " || x.my_field_2_col || ");"
from my_source_table x

Затем просто запустите созданный вами скрипт.

2 голосов
/ 26 октября 2009

Быстрый и грязный способ - запустить выделение в строке и указать менеджеру предприятия sql дать вам текст (не сетку) в качестве вывода

ВЫБРАТЬ 'ВСТАВИТЬ В СТОЛЫ (поля здесь) ЗНАЧЕНИЯ (' + field1 + ',' ....

2 голосов
/ 26 октября 2009

Это во многом зависит от инструментов, которые вы используете ...

1 голос
/ 20 июня 2011

Этот код работает со всеми таблицами

DECLARE @TblName varchar(128)
DECLARE @WhereClause varchar(255)
DECLARE @cmd1 varchar(7000) 
DECLARE @cmd2 varchar(7000)

SET @TblName = '<tablename>' --Name of your table
SET @WhereClause = ' ' --where clause ex columnA = 1
SET @cmd1 = 'SELECT '' INSERT INTO ' + @TblName + ' ( '
SET @cmd2 = ' + '' VALUES ( '' + '

create table #tableDef (id int identity (1,1), ColType int, ColName varchar(128))

--Fetch column names and datatypes
insert  #tableDef (ColType, ColName)
select case when DATA_TYPE like '%char%' then 1
            when DATA_TYPE like '%datetime%' then 2 
            else 0 end ,
    COLUMN_NAME
from    information_schema.columns
where   TABLE_NAME = @TblName
order by ORDINAL_POSITION

SELECT @cmd1 = @cmd1 + ColName + ',',
       @cmd2 = @cmd2
                + ' CASE WHEN ' + ColName + ' IS NULL '
                +   ' THEN ''NULL'' '
                +   ' ELSE '
                +     case ColType 
                      when  1 then  ''''''''' + ' + ColName + ' + ''''''''' 
                      when  2 then  ''''''''' + ' + 'CONVERT(VARCHAR(20),' + ColName + ')' + ' + '''''''''                    
                      else 'CONVERT(VARCHAR(20),' + ColName + ')' end
                + ' END + '','' + '
        from    #tableDef
order by id

select @cmd1 = left(@cmd1,len(@cmd1)-1) + ' ) '' '
select @cmd2 = left(@cmd2,len(@cmd2)-8) + '+'')'' FROM ' + @tblName + @WhereClause

select '/*' + @cmd1 + @cmd2 + '*/'
exec (@cmd1 + @cmd2)

drop table #tableDef
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...