执行存储过程和sql的权限都是一样的吧?
建表改字段,属于ddl
而一般的増删改是dml搜到一个例子: http://bbs.csdn.net/topics/10411998
CREATE PROCEDURE dbo.createtbl (@TableName varchar(10)) as
exec('CREATE TABLE ['+@TableName+'] ([title] [varchar](20) NOT NULL)')
go你是建表没问题,修改结构才不行?
干脆一次性建好所有字段
建表改字段,属于ddl
而一般的増删改是dml搜到一个例子: http://bbs.csdn.net/topics/10411998
CREATE PROCEDURE dbo.createtbl (@TableName varchar(10)) as
exec('CREATE TABLE ['+@TableName+'] ([title] [varchar](20) NOT NULL)')
go你是建表没问题,修改结构才不行?
干脆一次性建好所有字段
能一次性建好,当然一次性建好了,问题就是在于不能一次性建好啊。需要删除和增加字段,我现在是在delphi里增删字段,但是想通过存储过程实现。
是不是这种机制决定了不允许存储过程来执行?
也因为这个机制,你一个个字段的修改,可能效率太低:倒腾n遍通过程序每次发alter的sql,应该能实现吧——也是要倒腾n遍
能一次性建好,当然一次性建好了,问题就是在于不能一次性建好啊。需要删除和增加字段,我现在是在delphi里增删字段,但是想通过存储过程实现。这种,可能一次性建一个完整的表结构
然后把旧表的记录里需要的字段一次性导回来
再truncate旧表
最后把新表改名为旧表
效率才是最高的