动态sql语句问题
USE MyDB
GO
CREATE PROC [dbo].[test]
AS
BEGIN
PRINT 'HI'
END
这段sql单独拿出来执行没问题,执行结果在MyDB中建立了一个存储过程。
但是。
declare @sql nvarchar(max)
set @sql=''
set @sql='
USE MyDB
GO
CREATE PROC [dbo].[test]
AS
BEGIN
PRINT ''HI''
END
'
错误信息:
消息 102,级别 15,状态 1,第 1 行
'GO' 附近有语法错误。
消息 111,级别 15,状态 1,第 7 行
'CREATE/ALTER PROCEDURE' 必须是查询批次中的第一个语句。
如果我先执行
[code=SQL]
set @sql=N'
USE MyDB
’
exec @sql
然后再执行
set @sql=N'
CREATE PROC [dbo].[test]
AS
BEGIN
PRINT ''HI''
END
'
exec @sql
那么该存储过程会建立在Master.
而我想将该存储过程建立在MyDB上,请高手赐教。
[/code]
相关推荐
MyBatis增删改查:静态与动态SQL语句拼接及SQL注入问题解析
MyBatis增删改查:静态与动态SQL语句拼接及SQL注入问题解析
数据库领域:SQL 动态语句的安全性问题
本文旨在全面分析SQL动态语句的安全性问题,帮助开发人员理解SQL注入攻击的原理和防御方法。文章涵盖从基础概念到高级防御技术的完整知识体系,适用于各种主流数据库系统(MySQL、PostgreSQL、SQL Server等)。文章首先介绍SQL动态语句的基本概念,然后深入分析安全问题,接着提供多种防御方案和最佳实践,最后讨论未来发展趋势。动态SQL:在运行时构建和执行的SQL语句,通常包含用户输入或变量SQL注入:攻击者通过在用户输入中插入恶意SQL代码来操纵数据库查询的攻击方式参数化查询。
ABAP SQL 语句 动态 操作
本程序自主开发,包括SELECT,UPDATE,DELETE,INSERT操作,SELECT 语句可以根据自定义的内表动态的输出ALV 列表,UPDATE DELETE INSERT 语句可以对数据库表进行操作. 切忌谨慎应用此程序对数据库的操作,以免造成数据的丢失.此程序仅共学习
MySQL 存储过程中执行动态SQL语句的方法
drop PROCEDURE if exists my_procedure; create PROCEDURE my_procedure() BEGIN declare my_sqll varchar(500); set my_sqll='select * from aa_list'; set @ms=my_sqll; PREPARE s1 from @ms; EXECUTE s1; deallocate prepare s1; end; 您可能感兴趣的文章:mysql 存储过程中变量的定义与赋值操作mysql存储过程详解mysq
MyBatis 执行动态 SQL语句详解
大家对mybatis执行任意sql语句都了解,那么MyBatis执行动态SQL语句呢?下面脚本之家小编给大家解答下mybatis执行动态sql语句的方法,非常不错,感兴趣的朋友参考下吧


疑难问题
