Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
lfmn
Posting Yak Master
141 Posts |
Posted - 2001-05-16 : 14:24:00
|
| I know that this is a lot of code to look at, but if anyone has the time, I would be interested in another opinion. This has me (and the other people I work with) stumped. This code should be run from the master db and you need to have the pubs db installed on your server (or rename pubs to any other db). We've run this on two different computers with the same results 1)Windows NT workstation with SP 5, SQL server 7 with SP2 and 2) Window NT server SP 6a, SQL server 7 with no service pack. It appears that this query is being processed in the incorrect order. I'm getting the following error - Server: Msg 207, Level 16, State 1, Line 78Invalid column name 'username'., but I'm trying to drop the first table named _jfktmp2 and create a new table with the same name. The second _jfktmp2 does have the column username. If I comment out different sections of code, I can get parts of it to work, but not the whole thing. We are currently using an UGLY solution - a go statement and declare the variables again, but now this has gotten personal. I can't be vexed by a stupid machine!! Any thoughts would be appreciatedset nocount ondeclare @sysadmin sysnamedeclare @securityadmin sysnamedeclare @serveradmin sysnamedeclare @setupadmin sysnamedeclare @processadmin sysnamedeclare @diskadmin sysnamedeclare @dbcreator sysnamedeclare @username sysnamecreate table pubs.dbo._jfktmp2(ServerRole sysname null,MemberName sysname null,MemberSID varbinary(85) null)insert pubs.dbo._jfktmp2 exec sp_helpsrvrolememberselect MemberName, ServerRoleinto pubs.dbo._jfktmp3from pubs.dbo._jfktmp2order by MemberNamedrop table pubs.dbo._jfktmp2select * from pubs.dbo._jfktmp3create table pubs.dbo._jfktmp2(username sysname null,sysadmin sysname null,securityadmin sysname null,serveradmin sysname null,setupadmin sysname null,processadmin sysname null,diskadmin sysname null,dbcreator sysname null)declare db_cursor2 cursor forselect distinct membername from pubs.dbo._jfktmp3open db_cursor2fetch next from db_cursor2 into @usernamewhile @@fetch_status = 0begin set @sysadmin = 'NO' set @securityadmin = 'NO' set @serveradmin = 'NO' set @setupadmin = 'NO' set @processadmin = 'NO' set @diskadmin = 'NO' set @dbcreator = 'NO' if (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'sysadmin')) is not null set @sysadmin = 'SELECTED' if (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'securityadmin')) is not null set @securityadmin = 'SELECTED' if (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'serveradmin')) is not null set @serveradmin = 'SELECTED' if (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'setupadmin')) is not null set @setupadmin = 'SELECTED' if (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'processadmin')) is not null set @processadmin = 'SELECTED' if (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'diskadmin')) is not null set @diskadmin = 'SELECTED' if (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'dbcreator')) is not null set @dbcreator = 'SELECTED'/* set @securityadmin = (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'securityadmin')) set @serveradmin = (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'serveradmin')) set @setupadmin = (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'setupadmin')) set @processadmin = (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'processadmin')) set @diskadmin = (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'diskadmin')) set @dbcreator = (select serverrole from pubs.dbo._jfktmp3 where (membername = @username) and (serverrole = 'dbcreator'))*/ insert pubs.dbo._jfktmp2 (username,sysadmin,securityadmin,serveradmin,setupadmin,processadmin,diskadmin,dbcreator) values (@username,@sysadmin,@securityadmin,@serveradmin,@setupadmin,@processadmin,@diskadmin,@dbcreator) fetch next from db_cursor2 into @usernameendclose db_cursor2select * from pubs.dbo._jfktmp2deallocate db_cursor2drop table pubs.dbo._jfktmp2drop table pubs.dbo._jfktmp3lfmn16DBA/Developer |
|
|
|
|
|
|
|