【C#编程最佳实践 六】数据库操作相关实践

本篇条目和详细操作均会发生调整,凡是和数据库有关的实践都将在这里记录,本篇使用的数据库为sqlServer。

常用SQL语句总结

关于库,表的操作

  • 查找库内所有具有某个字段的表名
SELECT COLUMN_NAME,TABLE_NAME FROM INFORMATION_SCHEMA.columns WHERE COLUMN_NAME ='TenantID'
  • 查询库内所有表的名称
SELECT NAME,* FROM SYSOBJECTS WHERE XTYPE='U' 

存储过程实践

创建与修改

存储过程执行流程
1,首先创建空存储过程,删除多余参数,点击执行,不保存
2,找到创建的存储过程,传入参数,定义返回值和要执行的sql
3,通过传入参数实现sql的动态拼接
标准的存储过程

USE [User]
GO
/****** Object:  StoredProcedure [dbo].[****]    Script Date: 2017/11/28 21:35:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[****]

(
@tblName   varchar(255),            -- 表名如:'xtest'
@id  uniqueidentifier,    --Guid类型
@tenantId int
)
AS
declare @strSql nvarchar(1000)
print @strSql
set  @strSql=' SELECT * FROM '+@tblName +' where ID= '''+ CONVERT(varchar(40), @id) +''' and TenantID='+  CONVERT(varchar(15), @tenantId)+''

EXECUTE sp_executesql @strSql 

检测存储过程

ALTER PROCEDURE [dbo].[****]

(
@id  int,    --int类型
@tblName   varchar(255),           -- 表名如:'xtest'
@application    varchar(255)  
)
AS
declare @strSql nvarchar(1000)
set  @strSql=' SELECT * FROM '+@tblName +' where Application = '''+@application+''' and  TenantID = '+ CONVERT(varchar(255), @id)+''
--print @strSql//第一步
--EXECUTE sp_executesql @strSql 

--exec [dbo].[****]  '203784',  'UserPermission',  'abc' //第一步
--SELECT * FROM UserPermission where [Application]='abc' and  TenantID= 6666 //第二步

第一步:写上如上所示的第一步部分,注释掉存储过程的生成,查看错误出现在哪儿,后边三个是参数传递,以逗号隔开
第二步:存储过程执行无误后,写上如上所示的第二步部分,检测sql语句是否执行成功

测试方法:传入参数,得到自己想要的值则sql没问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

存在morning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值