多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > Sqlserver > SQL SERVER存儲過程動態SQL的實現

SQL SERVER存儲過程動態SQL的實現

來源:程序員人生   發布時間:2014-01-17 03:57:20 閱讀次數:4582次

SQL SERVER存儲過程動態SQL的實現


中文

這個問題在最近寫存儲過程時困擾了N久,用BAIDU查遍國內的各網站使用沒有一個好的解決方案,最終通過GOOGLE搜索關鍵字"SQL SERVER DYNAMIC SQ"L,再通過各國外論壇才找到一個不起眼的網站的某頁面.

http://www.sommarskog.se/dynamic_sql.html

文章的標題是<The Curse and Blessings of Dynamic SQL>,由此可見此問題讓人恨,而一旦解決就能讓人愛哩......

正如文章中所稱,該文是為了解決諸如此類的問題:

SELECT * FROM @tablename

SELECT @colname FROM tbl

SELECT * FROM tbl WHERE x IN (@list)

而我最頭疼的就是第一條,試圖通過 select @name=name from @tablename來獲取某動態表的變量.但文章中明確指出,同時也是我試了N次得到的結論

動態SQL只能通過如

@SQL='select @name=name from '+@tablename

要運行這條,大多數人都是通過EXEC(@SQL),但是,@name類似程序中局部變量,生存期只有在EXEC中.無法在SQL存儲過程中使用.

在文章中終于找到解決辦法......

范例程序

DECLARE @sql nvarchar(4000), -- nvarchar(MAX) on SQL 2005.

@col sysname,

@min varchar(20)

SELECT @col = N'au_fname'

SELECT @sql = N'SELECT @min = convert(varchar(20), MIN(' + @col +

N')) FROM authors'

EXEC sp_executesql @sql, N'@min varchar(20) OUTPUT', @min OUTPUT

SELECT @min

終于可以解決哩.......但要注意的是,sp_executesql后的參數只能是NVARCHAR,VARCHAR之類的字符型.

終于解決了.......

該文中還有一些防止SQL注入之類的討論,以及對新手講解SQL存儲過程的意義何在.

做SQL數據庫,并轉向存儲開發過程的人必看.....

技術,還是老外牛X......而且老外更傾向技術的交流,而國內號稱有許多高手,真正樂意分享的太少太少......

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产欧美国产精品第二区 | 久久91精品国产91久久 | 亚洲在线看 | 在线观看亚洲精品国产 | 国产成人91| 久久成人乱小说 | 日韩精品一区二区三区中文字幕 | 最近中文字幕完整在线看一 | 亚洲欧洲一区 | 日韩专区亚洲精品欧美专区 | 国产成年网站v片在线观看 国产成人 免费观看 | 一二三四在线观看免费播放视频 | 性欧美精品videofree高清hd | 日本一区二区精品88 | 国产精品久久久久激情影院 | 18欧美同性videos可播放 | 欧美freesex交| 国内精品久久久久久不卡影院 | 成人久久久久 | 东方伊人免费在线观看 | 五月天婷五月天综合网在线 | 国产成人免费在线视频 | 成人乱码一区二区三区四区 | 欧美xxxxhd4k | 欧美黄色毛片 | 亚洲精品在线视频观看 | hh99me福利毛片在线看 | 国内自拍视频网站 | 欧美性猛交黑人 | 一级做a爱免费观看视频 | 欧美freexxx| 国产福利影院 | 久久成人精品 | 免费一级毛片免费播放 | 日本wwwcom| 国产在线a | 亚洲国产日韩欧美一区二区三区 | 国产在线观看不卡免费高清 | 校园春色亚洲 | 国产基zz视频日本在线观看 | 久久精品无码一区二区三区 |