我們在撰寫TSQL時常常會需要建立跟實體資料表一樣資料欄位的暫存表來暫存及處理資料。最常用的方法就是Select Into來做,省去撰寫一堆Create的語法。
如何使用 SELECT INTO 複製表,但忽略 IDENTITY 屬性
- 267
- 0
- [SQL]TSQL語法技巧
我們在撰寫TSQL時常常會需要建立跟實體資料表一樣資料欄位的暫存表來暫存及處理資料。最常用的方法就是Select Into來做,省去撰寫一堆Create的語法。
有時候基於效能問題會使用Index View來提升查詢效能,但常常建立完成後SQL引擎卻不賞臉,死都不使用Index View的資料,硬是去掃Base Table。
很多情境會使用CTE來跑遞迴,最常的情境應該就是用CTE跑出階層效果。
而要順利使用遞迴會有一些限制,其中官方文件有寫到一個限制就是 -->
以下是因為該限制而發生錯誤的Demo Code
在系統需求中常常會有利用舊年度資料源來預先產出新年度資料,由於資料表正規化規則,因此往往PK都是流水碼或GUID,因此產出新舊碼的對照表是關鍵中的關鍵,以下簡單模擬我遇見的需求。
SQL2022有幾個TSQL的新增或加強舊有函式功能,以下簡易筆記一下
日前撰寫TSQL時利用CTE搭配Delete來刪除資料,但刪除後的結果是錯誤的,經一番測試後才發現問題點
簡單筆記一下如何透過Linked Server來刪除資料表
今天一位同事用Case When去比對欄位時發生錯誤,該欄位是ntext型態,以下記錄一下
這是一個網友在PASS社團問的問題,個人筆記一下
今天在Super SQL Server社團看見有人問了一個問題,他有一個每日銷售金額統計表,他想每日都往前加5天,產生一個view叫做sumof5days,應該如何寫這個查詢呢?
日前有一個需求就是每一年初產出今年所有日期的資料,並寫入資料表中。產出今年所有日期的資料的作法我是採用CTE搭配其遞迴的特性來做
日前檢視一支StoreProcedure時無意間發現了這一個問題。當時該SP的開發者在該SP中利用User丟進來的參數來串成他要的Query字串後再透過sp_executesql執行該語法字串。等於是在SP中組出一個Adhoc字串來跑,這樣完全無法享受到重用執行計畫的好處。
日前一位開發同仁反應他透過SSMS的UI要修改自己的密碼時都會顯示權限不足而無法修改,我試了一下發現的確如此
近期在撰寫TSQL做資料匯入時,會因為目的資料表有Identity型態的欄位,所以得在該資料表開啟IDENTITY_INSERT後再寫入資料。
今天同仁問了一個問題,他用字串動態組了一個超長的語法,但該字串列出來時發現中間少了一些語法,似乎是字串相加時被截掉了。
現實的資料規劃中常會遇到有人將一些有意義的代號組成一字串來儲存,這樣的設計模式常常會碰到的大問題就是需要拆字串來查詢。而拆字串的方式查詢往往都無法使用索引,因此造成Table Scan進而影響效能。
純筆記
日前一位同仁來告知我說他寫了一支預存程序,但一執行卻跑很久也不會停止,因此請我幫忙看一下該預存程序。
SQL2016以前常會有一個需求就是將一個字串用分隔符號拆解後轉成Table來運用,而這個需求在SQL2016中內建了
我們常常會把文件或圖檔轉成二進位後放到SQL資料庫中,但如果要取出該檔案往往需要撰寫程式來將檔案取出,日前楊志強老師分享利用BCP方式也可以簡單做到,筆記一下