動態存儲過程(帶LIKE)的一些總結。
来源:互联网 发布:java 用户权限管理 编辑:程序博客网 时间:2024/06/06 05:10
1. 常見錯誤
select count(*) from (@table) where title like '%'+(@title)+'%'--错误
From 子句只能帶表名、視圖名、表變量,編譯器把@tablename看作表變量,會報變量沒有申明的錯誤。
2. sp_executesql
執行可以多次重用或動態申城的Transact-SQL語句或批処理。Transact-SQL語句或批処理可以包含嵌入參數。
3. 動態SQL語句的一些常見寫法
3.1) 普通SQL語句可以用Exec執行
Eg: select * from tableName
Exec('select * from tableName')
sp_executesql N'select * from tableName' -- 請注意字符串前一定要加N
3.2) 字段名、表明、數據庫名之類作爲變量時,必須用動態SQL
Eg: declare @fname varchar(20)
set @fname = '[name]'
Select @fname from sysobjects-- 錯誤
Exec('select ' + @fname + ' from sysobjects')
--請注意:加號前後的單引號的邊上要加上空格
Exec sp_executesql N' select ' + @fname + ' from sysobjects' --這句不能執行 請參考:sp_executesql
必須将字符串改成变量的形式才可以使用
Declare @s varchar(1000)
set @s = 'select ' + @fname + ' from sysobjects'
Exec(@s) -- 成功
exec sp_executesql @s --此句會報錯
declare @s Nvarchar(1000) --注意此處改爲nvarchar(1000)
set @s = 'select ' + @fname + ' from sysobjects'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正確
3.3) 輸出參數
Eg: declare @num,
@sqls
set @sqls='select count(*) from ' + @servername + '.a.dbo.b'
exec(@sqls)
我如何能將exec執行的結果存入變量@num中
declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from '+@servername+'.a.dbo.b'
exec sp_executesql @sqls,N'@a int output',@num output
select @num
4. 在T_SQL中,兩個單引號表示一個單引號
Eg: Select ‘’’’得到正確的動態存儲過程(帶like語句)
CREATE PROCEDURE GetNewsCount
@table varchar(60),
@title varchar(200)
as
declare @sql varchar(600)
set @sql=' select count(*) from '+rtrim(@table)+' where title like ''%'+(@title)+'%'''
exec (@sql)
GO
==後記:
博文:http://blog.csdn.net/swort_177/article/details/2960422 有一些錯誤,上文為我糾正后的結果。
- 動態存儲過程(帶LIKE)的一些總結。
- like,%,_ 的一些用法。。。
- 动态存储过程(带LIKE)的一些总结!
- 动态存储过程(带LIKE)的一些总结!
- sql有关like查询的一些用法
- 关于 mysql 中 find_in_set 与 like 查询的一些思考
- MySQL的模糊查询(like)
- shared libraries在unix-like系统上的实现的一些差别
- MySQL SELECT LIKE like的用法
- LIKE的基本用法
- ibatis的like使用
- 【杂记--LIKE的用法】
- SQL LIKE的用法
- hql 的like 写法
- 我的Like地址
- vb like的用法
- SQL的like语句
- DB2的like详解
- 一元多项式的相加减
- 小弟开博客啦
- Delphi 中串口通讯的实现
- C++ Heap corruption detected
- Treeview用于显示按照树形结构进行组织的数据
- 動態存儲過程(帶LIKE)的一些總結。
- statement
- ubuntu vnc配置
- MFC 注册热键
- Eclipse使用指南
- QTP自动化测试之VBScript基础
- Delphi TStrings 用法
- gcc命令行详解
- Red Hat 修改 LOCALE 字符集