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