iT邦幫忙

0

[SQL] 常用語法 - create table & SP INSERT TO TABLE

drop table Customer
go
CREATE TABLE Customer
(
SID int not null ,--PRIMARY KEY,
ID int not null ,
LastName varchar(30) not null,
FirstName varchar(30)
)

--#新增key值
--ALTER TABLE Customer ADD PRIMARY KEY (SID);
--ALTER TABLE Customer ADD PRIMARY KEY (SID,GroupID);

--刪除key值
ALTER TABLE CustDROP [PK_Cust]

--#建立索引
ALTER TABLE Customer
ADD CONSTRAINT PK_cust PRIMARY KEY (ID,LastName)

--#建立索引
create index idx_xxx on table_name (xxxx,xxxx)

--#新增col
ALTER TABLE Customer ADD TT varchar(10);
SELECT * FROM Customer

--#更改col type
ALTER TABLE Customer ALTER COLUMN TT varchar(40);

--#刪除col
ALTER TABLE Customer DROP COLUMN TT;
SELECT * FROM Customer

SP INSERT INTO TABLE

--建立一個 LinkedServer 連自已
sp_addlinkedserver @server = 'LOCALSERVER', @srvproduct = '',
@provider = 'SQLOLEDB', @datasrc = @@servername

--透過 Linked Server 來取得 myTable 的資料 (linkedserver.db.schema.table)
SELECT * FROM LOCALSERVER.tempdb.dbo.myTable;

建立好 LinkedServer 後,就可以利用 OPENQUERY 來執行 Execute SQL,如下,

--將Execute的結果建立到暫存的資料表 #tempTable
SELECT *
INTO #myTempTable
FROM OPENQUERY(LOCALSERVER, 'EXEC(''SELECT * FROM LOCALSERVER.tempdb.dbo.myTable;'')');

--取得 #tempTable 的資料
SELECT * FROM #myTempTable;

SqlBulkCopy

 using (SqlConnection cn = new SqlConnection(connString))
                {
                    cn.Open();
                    using (SqlBulkCopy sqlBC = new SqlBulkCopy(cn))
                    {
                        //設定一個批次量寫入多少筆資料 
                        sqlBC.BatchSize = 1000;
                        //設定逾時的秒數 
                        sqlBC.BulkCopyTimeout = 60;

                        //設定要寫入的資料庫 
                        sqlBC.DestinationTableName = "FU_ICRMHR032_API_ACNO";

                        //對應資料行 
                        sqlBC.ColumnMappings.Add("COL01", "xxx");

                        //開始寫入
                        sqlBC.WriteToServer(dt);
                    }
                }
                    

REF
https://dotblogs.com.tw/rainmaker/2015/02/02/148355


尚未有邦友留言

立即登入留言