找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 2267|回复: 2

sqlserver根据内容查表和列

[复制链接]

4

主题

5

回帖

87

积分

用户组: 小·技术宅

UID
97
精华
0
威望
2 点
宅币
64 个
贡献
10 次
宅之契约
0 份
在线时间
2 小时
注册时间
2014-2-28
发表于 2014-4-15 11:39:17 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
  1. declare
  2.         --定义变量
  3. @v_sql nvarchar(4000),@v_sql2 nvarchar(4000),@v_s1 int,@v_s2 nvarchar(200), @v_s3 varchar(2000), @i INT,
  4. --定义游标
  5. @cursor_1 cursor
  6. set @cursor_1 = cursor  for SELECT OBJECT_NAME(s.id) AS 'table'  ,NAME AS name FROM syscolumns s WHERE s.id = OBJECT_ID (OBJECT_NAME(s.id),'u')
  7. --根据 OBJECT_ID('表名','u')找到用户表
  8. open  @cursor_1
  9. fetch next from @cursor_1  INTO @v_s2, @v_s3   --得到的参数输出
  10. WHILE  @@FETCH_STATUS=0  --游标的循环尺度
  11. BEGIN  --循环语句块
  12.   SET @v_sql='if exists( select '''+@v_s2+''' as ''table''  from ' +@v_s2+ ' where '+@v_s3+' like ''%福建%'') print ''表 '+@v_s2+' 列 '+@v_s3+'''   '
  13. --动态sql拼接 if exist的快速查询 参数''不好弄   
  14.   EXEC SP_EXECUTESQL @v_sql,N'@count int out',@v_s1  OUT
  15.   --执行存储过程 SP_EXECUTESQL 可以带参数 但必须有  N'@count int out' 不知为何
  16.   fetch next from @cursor_1  INTO @v_s2, @v_s3  --游标指向下一个
  17. END
复制代码

回复

使用道具 举报

4

主题

5

回帖

87

积分

用户组: 小·技术宅

UID
97
精华
0
威望
2 点
宅币
64 个
贡献
10 次
宅之契约
0 份
在线时间
2 小时
注册时间
2014-2-28
 楼主| 发表于 2014-4-15 11:41:05 | 显示全部楼层
想要输入查询内容 更改 like ''%福建%''
回复 赞! 靠!

使用道具 举报

37

主题

153

回帖

2008

积分

用户组: 超级版主

UID
8
精华
1
威望
14 点
宅币
1761 个
贡献
24 次
宅之契约
0 份
在线时间
279 小时
注册时间
2014-1-27
发表于 2014-4-29 15:33:13 | 显示全部楼层
{:soso_e100:}先赞一个,难得的sql语句。
回复 赞! 靠!

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-27 21:47 , Processed in 0.043362 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表