1. 程式人生 > >Kettle Sql Server插入語句和執行語句生成方法

Kettle Sql Server插入語句和執行語句生成方法

declare @tableName varchar(50)
set @tableName='Shop_Product'

declare @colName varchar(50),@typeName varchar(30),@isnull int,@order int
declare @query varchar(4000),@where varchar(100),@cols varchar(4000),@paras varchar(4000)

declare @insert varchar(4000)

select @query = 'SELECT '+char(13)+char(10),@cols = '',@paras='',@where=''

declare cur cursor for 
SELECT col.name as ColName,st.name typeName,col.isnullable,col.colid 
FROM syscolumns col join systypes st on col.xusertype = st.xusertype
WHERE col.id = object_id(@tableName)
open cur
fetch next from cur into @colName,@typeName,@isnull,@order
while @@FETCH_STATUS = 0
begin
    IF @order > 1
	begin
		SELECT @
[email protected]
+ ',',@[email protected] + ',',@[email protected] + ',' end if @colName in ('AgentId','AgenID') begin set @where=' WHERE '[email protected]+'=''%%AgentId%%''' end SELECT @[email protected] + @colName,@[email protected] + '?' IF @isnull = 0 BEGIN if @typeName = 'datetime' begin set @query= @query + 'Convert(Varchar(20),'
[email protected]
+',120) '[email protected]+char(13)+char(10) end else if @typeName = 'bit' begin --Y or N 無法識別 set @query= @query + 'Convert(tinyint,'[email protected]+') '[email protected]+char(13)+char(10) end else begin set @[email protected] + @colName+char(13)+char(10) end END else begin if @typeName='datetime' begin set @query= @query + 'ISNULL(Convert(Varchar(20),'
[email protected]
+',120),'''') '[email protected]+char(13)+char(10) end else if @typeName='bit' begin set @query= @query + 'ISNULL(Convert(tinyint,'[email protected]+'),0) '[email protected]+char(13)+char(10) end else if @typeName in ('int','tinyint','decimal','bigint','real','float','money','numeric','smallint','smallint') begin set @query= @query + 'ISNULL('[email protected]+',0) '[email protected]+char(13)+char(10) end else if @typeName='uniqueidentifier' begin set @query= @query + 'ISNULL('[email protected]+',''00000000-0000-0000-0000-000000000000'') '[email protected]+char(13)+char(10) end else begin set @query= @query + 'ISNULL('[email protected]+','''') '[email protected]+char(13)+char(10) end end fetch next from cur into @colName,@typeName,@isnull,@order end SELECT @query= @query+' FROM '[email protected] +' with(nolock)'[email protected] close cur deallocate cur set @insert = '' --有標識列 if OBJECTPROPERTY(OBJECT_ID(@tableName),'TableHasIdentity')= 1 begin set @insert = @insert+'SET IDENTITY_INSERT '[email protected]+' ON '+char(13)+char(10) end set @insert = @insert+'INSERT INTO '[email protected]+'('[email protected]+')'+char(13)+char(10) set @insert = @insert+'VALUES('[email protected]+')' select @query query,@insert insrt

相關推薦

Kettle Sql Server插入語句執行語句生成方法

declare @tableName varchar(50) set @tableName='Shop_Product' declare @colName varchar(50),@typeName varchar(30),@isnull int,@order int d

SQL Server插入資料刪除資料

首先在我的Student表中插入幾條資料,由於我的表已經建立完成了,所以就沒有建立表的 sql 語句了,不過可以看我的上一篇文章: http://www.cnblogs.com/Brambling/p/6649350.html 插入資料sql語句: 1  insert into Student(S

清除SQL Server資料快取執行計劃快取,檢視執行計劃的各種方式對比

清除資料和執行計劃快取: DBCC DROPCLEANBUFFERSDBCC FREEPROCCACHE 開啟統計資料: SET STATISTICS IO ON SET STATISTICS TIME ON 開啟執行計劃: SET SHOWPLAN_TEXT ONSET S

PL/SQL developer快速生成插入語句查詢語句

今天在使用plsql developer寫儲存過程中,當一個表字段過多,當要查詢部分欄位或者插入欄位,手敲欄位名特別辛苦而且容易出錯, 比如該表: 要寫一個插入語句的時候,可能需要這樣幹 insert into 表名(id, emp_id, entry_id, entr

sql server關於表表結構的一些查詢語句

1.查詢出資料庫中,當前登入使用者下的表名select name from sys.objects where type='U',或者select name from sysobjects where xtype='u' and status>=0 2.查詢一個表的欄位

v$sql——儲存的是具體的SQL語句執行計劃相關資訊!

如果知道了session的sid就可以找到當前session正在執行的sql: SQL> select sql_text,fetches,executions,parse_calls,disk_reads,cpu_time,elapsed_time from v$s

mybatis下使用log4j列印sql語句執行結果

本來以為很簡單的問題, 結果自己搞了半天還是不行; 然後google, baidu, 搜出來各種方法, 有加slf4j*.jar的,有說去掉slf4j*.jar,還有說要配置mybatis.cfg.xml的, 有的甚至一眼看上去就是不可能成功的. 試了這麼多, 結果沒有一

PL/SQL developer快速生成插入語句查詢語句(轉)

今天在使用plsql developer寫儲存過程中,當一個表字段過多,當要查詢部分欄位或者插入欄位,手敲欄位名特別辛苦而且容易出錯, 比如該表: 要寫一個插入語句的時候,可能需要這樣幹 insert into 表名(id, emp_id, entry_id, entry_type, i_e_type

sql server 鏈接服務器語句

null nbsp oledb 服務 lol code clas col ddl --//創建鏈接服務器【在本地服務器創建】 exec sp_addlinkedserver ‘HEE‘,‘‘,‘SQLOLEDB‘,‘192.168.98.222‘ -- exec s

SQL Server中的流控制語句

weight int return pri use 可選 查詢 一個 pan begin···end 該語句定義sql代碼塊,通常在if和while語句中使用 declare @num int ; set @num=0; while @num<10 beg

SQL Server插入數據刪除數據

外鍵約束 del key 觸發 image sql 語句 成了 刪除表 .com 首先在我的Student表中插入幾條數據,由於我的表已經創建完成了,所以就沒有創建表的 sql 語句了,不過可以看我的上一篇文章: http://www.cnblogs.com/Brambli

SQL SERVER發生死鎖檢測語句

sql server資料庫發生死鎖採用如下SQL語句進行檢索: select object_name(resource_associated_entity_id) as tableName, request_session_id as pid from sys.

SQL Server根據資料庫表,自動生成insert語句,批量新增

實際工作中,兩個資料庫不在同一臺伺服器上,又需要複製資料庫表時,可以在需要複製的資料庫中建立下面的儲存過程。 CREATE PROCEDURE [dbo].[OutputData] @tablename sysname, @

SQL Server DBA】日常維護語句

資料庫的日常維護,可以通過SQL Server中的維護計劃來自動實現,非常方便。 不過,也不是所有的維護,都可以通過維護計劃來實現,下面將通過程式碼來實現。 1、檢查資料庫完整性 dbcc

資料庫多表連查SQL運用Join語句聚合語句(Group By)

現在設有簡單的表(裡面的主鍵外來鍵就不寫了): Create table Employee( EmpID int, EmpName nvarchar(10), DepID int); Create table Department( DepID int,

SQL Server 資料庫增刪改查語句

在使用SQL Server的時候,需要在新建查詢中簡單的處理資料庫,下面介紹一下SQL基礎的增刪改查語句: 介紹下面用到的變數: Table:資料庫表名 Column::欄位 Content:內容 1

c#中SQL Server 資料庫的讀寫語句

資料庫讀寫 CDataBase using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Dat

SQL Server 資料庫 分析 優化 常用語句

--Begin Cpu 分析優化的相關 Sql --使用DMV來分析SQL Server啟動以來累計使用CPU資源最多的語句。例如下面的語句就可以列出前50名。select c.last_execution_time,c.execution_count,c.tota

準備執行語句 (ODBC)

準備一次語句,然後多次執行它 (可選) 呼叫SQLNumParams來確定已準備的語句中的引數數量。 (可選)對於預定義語句中的每個引數: 對於每次執行預定義語句: 如果語句有引數標記,請將資料值放到繫結引數緩衝區中。

python基礎:循環語句判斷語句

python 語句 循環 判斷 小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260 -------謝謝您的參考,如有疑問,歡迎交流一、 python語句塊和縮進縮進是Py