ทำได้ คงไม่ใช่ทำเป็น store procedure นะครับ
ไม่ได้ต่างจากเขียน โค๊ดข้างนอก db server เลยนะครับ
ผมชอบทำเป็น code นอก db server มากกว่า
Date :
2015-01-16 11:42:13
By :
Chaidhanan
No. 5
Guest
โค้ดตามตัวอย่าด้านล่างครับ อาจจะซับซ้อนหน่อยสำหรับมือใหม่ (ไม่ได้ใช้ Store Procedure ครับ) เป็นการวนลูปโดยใช้ Cursor ครับ
Code
DECLARE @id nvarchar(50)
DECLARE tar_cursor CURSOR FOR
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'PRODUCTCODE'
OPEN tar_cursor
FETCH NEXT FROM tar_cursor INTO @id
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SqlString ='UPDATE '+@id+' SET PRODUCTCODE=''123'' '
EXEC (@SqlString)
FETCH NEXT FROM tar_cursor INTO @id -- วนทีละ Row เพื่อเอามา Check ออกจากลูป
END
CLOSE tar_cursor
DEALLOCATE tar_cursor -- คืนทรัพยากรที่ถุกเรียกใช้มาสู่ระบบ
DECLARE @tbNM nvarchar(50), @qr nvarchar(80) /* ประกาศตัวแปรที่ใช้ */
DECLARE csr CURSOR FOR /* ประกาศตัวแปร cursor */
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'PROCEDURECODE'
OPEN csr
FETCH NEXT FROM csr INTO @tbNM
WHILE @@FETCH_STATUS = 0
BEGIN
set @qr='sp_rename '''+@tbNM +'.PROCEDURECODE'' , ''CODE'', ''COLUMN'' '
EXEC (@qr)
FETCH NEXT FROM csr INTO @tbNM
END
CLOSE csr
DEALLOCATE csr